- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试从 QRunnable
向我的主要 QObject
发送信号,但由于某种原因它没有接收到它们。
这样做正确吗?
这是一个小测试用例:
import sys
from PyQt4.QtGui import QApplication
from PyQt4.QtCore import QThreadPool, QObject, QRunnable, pyqtSignal
class WorkerSignals(QObject):
result = pyqtSignal(int)
class Worker(QRunnable):
def __init__(self, task):
super(Worker, self).__init__()
self.task = task
self.signals = WorkerSignals()
def run(self):
print 'Sending', self.task
self.signals.result.emit(self.task)
class Tasks(QObject):
def __init__(self):
super(Tasks, self).__init__()
self.pool = QThreadPool()
self.pool.setMaxThreadCount(1)
def process_result(self, task):
print 'Receiving', task # This does not run
def start(self):
for task in range(10):
worker = Worker(task)
worker.signals.result.connect(self.process_result)
self.pool.start(worker)
self.pool.waitForDone()
if __name__ == '__main__':
app = QApplication(sys.argv)
stuff = Tasks()
stuff.start()
最佳答案
你需要调用app.exec_()
When we call the application's exec_() method, the application enters the main loop. The main loop fetches events and sends them to the objects. Signals and slots are used for communication between objects. A signal is emitted when a particular event occurs. A slot can be any Python callable. A slot is called when a signal connected to it is emitted.
关于python - 从 QRunnable 发出信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13786149/
是否可以中止 QRunnable 任务? 即使在文档中我也找不到任何方法。 非常感谢 最佳答案 不,您不能中止 QRunnable 任务。 在 Qt 中脏中止线程的唯一方法是通过 QThread::t
我正在尝试将指针 (ImageInput) 传递给 QRunnable::run() 方法。编译器编译,我没有得到任何错误。但是当我尝试在 run() 中使用变量时,程序崩溃了。有人知道错误在哪里吗?
QRunnable 在完成后被 QThreadPool 销毁。当我从它发出信号并尝试使用 sender() 从槽中获取 QRunnable 对象时,它为 NULL。 最小的例子: // class M
可以指出使用 QRunnable 作为 QtConcurrent 的替代方案的一些代码:我在 Qtdoc 中找不到任何 QRunnable 示例。 你有没有为同一个应用程序尝试过 QRunnable
在 QRunnable::run() 中发出信号是正确的做法吗?我需要通知我的 GUI 线程由 QRunnable 处理的图像已完成。我正在使用 QThreadPool/QRunnable 因为我需要
我正在编写一个路径跟踪器,并希望通过线程将其并行化。我有一个关于 QT 中多线程对象的设计问题,特别是关于 QRunnable 类。 在我下面的(伪代码)中,我有一个启动 PTRunnable 实例的
我正在尝试从 QRunnable 向我的主要 QObject 发送信号,但由于某种原因它没有接收到它们。 这样做正确吗? 这是一个小测试用例: import sys from PyQt4.QtGui
QRunnable 似乎没有sleep 方法。 如何在 QRunnable 中调用类似 QThread::sleep 的方法? 最佳答案 不要使用特定于平台的功能。 Qt 的最大优点是它非常容易移植。
我在 Qt 中有一些 I/O 代码已移至 QRunnable为了避免阻塞 UI 线程。这会用一些排队的插槽回调以指示其进度。 但是我最近看到了一些问题,当 QRunnable 的所有者时被销毁它不能删
我创建了简单的多线程服务器: 创建服务器 如果新连接创建新的 QThreadpool - QRunnable 在可运行中向客户端发送消息并等待请求 如果客户端被断开 runnable 写 qDebug
From a tutorial ,我已经看到信号和槽可用于从工作线程回调到主 GUI 线程,但我不确定如何使用信号和槽建立双向通信。以下是我正在使用的内容: class RespondedToWork
我遇到的是典型场景中的一个奇怪问题:QTcpServer 的方法 incomingConnection 在自定义类中被覆盖,并且任何接收到的连接都计划在 QThreadPool 上的单独线程中处理。
我正在尝试制作一个监控硬件的应用程序,我想使用 Qthreadpool 而不是为每个小部件设置一个线程,但我在连接信号以显示输出时遇到了问题。我也没有收到任何错误。 我的旧代码运行良好并使用 QThr
QThread 有一个完成信号,我可以在线程完成时做一些事情(连接到一个方法/函数),但是我也想用 QRunnable 做这件事。有没有办法在完成后将 QRunnable 线程连接到方法/函数? Q线
此代码段中出现此错误: void TCPConnectThread::run() { m_socket = new QTcpSocket(); m_socket->setSocketD
QThreads 和 QRunnable 有什么区别? 什么时候应该使用 QThread,什么时候使用 QRunnable? 最佳答案 QThread 可以运行事件循环,QRunnable 没有,所以
我知道一般的理论,线程,QRunnable 和 QThreadPool。它是如何适应的?我的意思是当 QRunnable 的一个实例被创建并分配给 ThreadPool 时,启动一个线程意味着什么?多
我正在用 C++ 编写 Qt 应用程序。我有一个在 QThreadPool 中运行的 QRunnable,它向主线程发送一个信号。问题是,连接不起作用:主线程从未接收到信号,即使我已经验证确实调用了执
我有一个在使用 Python3 的 PyQT4 应用程序中需要一段时间的过程。所以我一直在研究使用线程来加速它。数据可以很容易地被分解并循环处理。我正在使用自定义的 QRunnable,您可以在其中传
我正在使用 pyqt4。我有一个类 multi 继承自 QObject 和 QRunnable,如下所示: class DownloadTask(QObject, QRunnable): de
我是一名优秀的程序员,十分优秀!