97得票7回答
使用PyQt创建后台线程(Background thread)的QThread

我有一个程序,通过我编写的PyQt GUI与我使用的无线电进行交互。显然,无线电的主要功能之一是传输数据,但为了连续传输数据,我必须循环写入数据,这导致GUI挂起。由于我从未处理过线程,我试图使用QCoreApplication.processEvents()消除这些挂起。然而,无线电在传输之...

73得票5回答
如何正确实现QThread?(请举个例子)

Qt的QThread文档说要从QThread创建一个类,并实现run方法。 以下是从4.7 Qthread文档中摘录的... 要创建自己的线程,需要从QThread子类化并重新实现run()。例如: class MyThread : public QThread { publi...

58得票3回答
Qt信号(QueuedConnection和DirectConnection)

我在使用Qt信号时遇到了困难。 我不理解DirectConnection和QueuedConnection是如何工作的? 如果有人能解释什么时候使用哪个(提供示例代码将不胜感激)。

42得票3回答
如何在PyQt中正确使用QThread的示例?

我正在学习如何在PyQt Gui应用程序中使用QThreads。我的一些操作需要较长时间,但通常可以在其中某些点更新Gui,但我想将主要工作拆分成其自己的线程(有时会卡住,如果Gui被冻结因为主循环被阻塞,则很难实现取消/重试按钮)。 我已经阅读了https://mayaposch.wor...

30得票5回答
跨线程使用Qt信号,其中一个是GUI线程?

什么是在Qt中使用moveToThread将对象从一个线程移动到另一个线程?即使在使用moveToThread之前,一切似乎都能正常工作,它会将对象从一个线程(GUI线程)移动到另一个线程(工作线程),Qt:connect会调用对象的适当槽函数。 由于对象所在的位置不同,GUI线程或工作线程...

30得票5回答
发送自定义的PyQt信号?

我正在使用PyQt和(Q)Threads编写一个简单的Twitter客户端。我有两个QThreads: 1. 主线程/GUI线程。 2. Twitter获取线程 - 每X分钟从Twitter获取数据。 所以,每隔X分钟我的Twitter线程就会下载一组新的状态更新(一个Python列表)。...

26得票3回答
QThread:线程仍在运行时被销毁

我在Python中使用QThreads遇到了问题。我想要改变标签的背景颜色。 但是我的应用程序在启动时崩溃了。 "QThread:线程仍在运行时被销毁" class MainWindow(QMainWindow): def __init__(self): Q...

25得票8回答
在使用Qt中的排队连接时,如何压缩插槽调用?

阅读了一些类似于Qt信号槽通信的文章(例如这篇文章)之后,我仍然有一个关于队列连接的问题。 如果我有一些线程一直相互发送信号,假设有一个thread_slow在其事件循环中运行缓慢的方法,而另一个thread_fast正在运行快速的方法,该方法在另一个线程仍在运行缓慢的方法时会发送多个信号…...

22得票6回答
PyQt: 如何在不冻结GUI的情况下更新进度?

问题: 在不锁定GUI(“无响应”)的情况下,跟踪线程进度的最佳实践是什么? 通常,在GUI开发中,针对线程编程的最佳实践是什么? 问题背景: 我有一个用于Windows的PyQt GUI。 它用于处理一组HTML文档。 处理一组文档需要三秒到三个小时不等的时间。 我希望能够同时处理多组...

22得票2回答
在Qt线程之间发送大量数据

我有一个QThread,会定期产生相当大量的数据(每秒几兆字节),需要传输到父线程(GUI线程)。 我不是很确定QThread的内部机制,所以想请教一下最佳实践。 显然,传输数据的最直接方法就是简单地emit数组。但这样效率如何?Qt是否知道它的使用情况,并在发送和接收时避免深度复制呢? ...