笔记:QtConcurrent :: run 两个线程中的信号与槽

Qt中利用QtConcurrent :: run开启一个单独线程,如何与主线程(或者其他线程)进行信号和槽函数的连接呢?

之前使用过程中运行会报错如下:

 因为是在不同的线程中进行操作的,所以导致对应槽函数等一直不能得到触发。(我尝试过传递对象参数去调用等还是不能得到触发)

QThread等方法也能实现对应的功能,不使用QtConcurrent。

解决办法:

调用的对象中,绑定自身的信号和槽函数;

 线程创建:

 线程函数:笔记:QtConcurrent :: run 两个线程中的信号与槽_第1张图片

 如此就能解决问题了。

之前看见网上搜索有些博客提示是可以通过返回值进行cancel关闭线程的,实际上不可行的,

返回的 QFuture只能查询查看线程的相关信息

 注意:QtConcurrent::run的返回值QFuture  是不能通过cancel()关闭线程的。

你可能感兴趣的:(Qt,qt)