您可以创建一个单独的QThread类,并仅从中调用特定函数吗?

丹尼尔

我已经尝试了尽可能多地阅读有关PyQt4的QThread和辅助线程的想法。我的问题是,而不是从构建的QThread类来运行一切都在它def run(self):blahblah.start()命令是有办法创建具有,比如,个别线程类,4个功能,你只通话功能2,然后关闭后,线程权?

重要性

尽管经常使用子类化QThread但通常不鼓励这样做 [请参阅下面的评论]

我认为,是如何在pyqt中使用线程的一个很好的例子。您将创建一个Worker和一个Thread,其中Worker是某种类型的常规类,QObject而Thread是QThread您不子类化的。然后,您需要将Worker移至Threat并启动它。

    self.worker = WorkerObject()
    self.worker_thread = QtCore.QThread()
    self.worker.moveToThread(self.worker_thread)
    self.worker_thread.start()

在Worker内部,您基本上可以做任何您想做的事,它可以有任意多种方法,依此类推。
要记住的一件大事是,Worker需要与主循环分开。因此,这些方法不应返回主循环中使用的任何内容(最好根本不返回任何内容),并且应使用信号和插槽来收集Worker的结果。

self.button_start.clicked.connect(self.worker.startWork)
self.button_do_something_else.clicked.connect(self.worker.function2)
self.worker.signalStatus.connect(self.updateStatus)

还要确保不要在worker内部使用任何PyQt / GUI对象,因为这也会在Worker和通过PyQt本身的主循环之间架起一座桥梁。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

您可以在以打字稿/角度导出它之前创建一个类吗?| TSLint:未使用的表达式,预期为赋值或函数调用

您可以从 PostgreSQL 中的另一个函数调用 call perform/do 函数吗?

您可以重置一个变量来存储调用包含闭包的函数的结果吗?

您可以传递一个函数以便以后调用它吗?

您可以在该类的成员函数内使用一个类吗?c ++

我可以为 u 元素创建一个单独的类吗

您可以在laravel中创建一个可以调用其他各种作用域的作用域吗?

您可以创建一个可以使用参数结果指定要更改的值的函数吗?

我可以在构造函数中创建一个局部函数并调用它吗

您可以调用基类的构造函数来创建派生对象吗?

我可以像使用函数一样创建一个重复的类吗

NodeJS:静态方法可以调用同一个类的构造函数吗?

我可以创建一个可以解包的类吗?

我可以设置一个函数来从列表中调用特定索引吗?

字典函数:您可以为“第 2 层”函数分配一个参数吗?

您可以使用一个提交按钮执行两个javascript函数吗

一个类可以没有构造函数吗?

您可以将两个单独的流程图连接到一个限制区域吗?

您可以从一个Nodejs模块导出多个类吗?

可以在类的构造函数内部使用“ new”来调用Java中的另一个构造函数吗?

我可以从 C# 中另一个类的构造函数调用构造函数吗?

是否可以在另一个类中调用一个类的构造函数?

我正在尝试创建一个创建正方形的类,并且可以在我的主函数中调用它

您可以创建一个HTML列表,将其切成包含渐变的DIV吗?

在C ++中,您可以创建一个对象作为arg来起作用吗?

您可以创建一个真正的圆形SVG按钮吗?

您可以在 Google Big query 中使用一个查询创建多个表吗?

您可以创建一个类似于“完成”页面的自定义页面吗?

您可以创建一个参数查询来选择字段吗?