【问题标题】:QThreads with parameters passing带参数传递的 QThreads
【发布时间】:2017-05-03 05:41:03
【问题描述】:

我有一个 qt gui 项目,我必须在其中使用线程。

我一直在谷歌上搜索一种将参数传递给 QThread 的方法,但我找不到方法。

有人知道这样做的方法吗?如果 QThreads 不是解决方案,甚至可以使用另一种线程。

谢谢你们!

【问题讨论】:

  • 先google“qthread正确方式”,然后google“qt槽对象参数传递”
  • 一个可能的解决方案是使用信号和槽
  • 一般来说,你不需要对QThread 做任何事情,除了不加改动地使用它。它不需要任何“参数”。

标签: qt qthread


【解决方案1】:

使用 QThreads 基本上有 2 种方法:

  1. 继承 QThread 并重新实现 run 方法
  2. 子类 QObject 并使用 QObject::moveToThread 将此对象移动到 QThread

如果你想“将参数传递给 QThread”,那么这两种方法都很简单。

  1. 您可以从子类的任何方法(包括重新实现的 run 方法)访问子类的成员变量。
  2. 您的工作对象的插槽,将在另一个线程中执行,可以采用任意数量的参数

我建议您阅读此http://doc.qt.io/qt-5/qthread.html#details 了解更多详细信息。

请始终牢记,QThread 本身不是线程,而是帮助管理线程的类。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-10
    • 2017-08-07
    • 2015-07-26
    • 2018-09-11
    • 2015-01-13
    • 2010-11-20
    相关资源
    最近更新 更多