带参数传递的 QThreads
Posted
技术标签:
【中文标题】带参数传递的 QThreads【英文标题】:QThreads with parameters passing 【发布时间】:2017-05-03 05:41:03 【问题描述】:我有一个 qt gui 项目,我必须在其中使用线程。
我一直在谷歌上搜索一种将参数传递给 QThread 的方法,但我找不到方法。
有人知道这样做的方法吗?如果 QThreads 不是解决方案,甚至可以使用另一种线程。
谢谢你们!
【问题讨论】:
先google“qthread正确方式”,然后google“qt槽对象参数传递” 一个可能的解决方案是使用信号和槽 一般来说,你不需要对QThread
做任何事情,除了不加改动地使用它。它不需要任何“参数”。
【参考方案1】:
使用 QThreads 基本上有 2 种方法:
-
继承 QThread 并重新实现
run
方法
子类 QObject 并使用 QObject::moveToThread
将此对象移动到 QThread
如果你想“将参数传递给 QThread”,那么这两种方法都很简单。
-
您可以从子类的任何方法(包括重新实现的
run
方法)访问子类的成员变量。
您的工作对象的插槽,将在另一个线程中执行,可以采用任意数量的参数
我建议您阅读此http://doc.qt.io/qt-5/qthread.html#details 了解更多详细信息。
请始终牢记,QThread 本身不是线程,而是帮助管理线程的类。
【讨论】:
以上是关于带参数传递的 QThreads的主要内容,如果未能解决你的问题,请参考以下文章