我正在使用 PySide(Python Qt 绑定)。
我有一个 QThread 类的工作线程,它通过信号/插槽机制更新主 GUI 线程(更新 QTableWidget)。
在我的工作线程中,我有以下内容:
self.emit(SIGNAL("alterTable(object"), params)
在我的 GUI 线程中,我有这个:
self.connect(self.worker, SIGNAL("alterTable(object)"), self.updateMainTable, Qt.AutoConnection)
由于有几个类似的工作线程运行都连接到同一个插槽(the self.updateMainTable
),我应该使用 AutoConnection(以及因此 QueuedConnection)。使用这些Qt.DirectConnection
作品,但它不安全(或者我被告知)。
但是当我尝试使用 AutoConnection 时,出现以下错误:
QObject::connect: Cannot queue arguments of type 'object'
(Make sure 'object' is registered using qRegisterMetaType().)
我已经用谷歌搜索了很久,试图找出一种如何qRegisterMetaType()
在 PySide 中使用的方法,但无济于事。我在网上找到的所有资源都指向 C++ 语法/文档。
如果它有任何区别,那么dict
大部分时间都是有问题的对象。