带参数传递的 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的主要内容,如果未能解决你的问题,请参考以下文章

flutter 跳转页面传递参数 返回页面带参数

JS 传递URL带中文的参数

如何将函数作为参数传递,带参数? [复制]

JS函数如何传递带空格参数

传递给在 SwiftUI 中不带参数的调用的参数

参数传递:shell脚本调用一个带参数的python函数