我正在使用PySide(Python Qt綁定)。QObject :: connect:無法在PySide中排隊'object'類型的參數
我有一個QThread類的工作線程,通過信號/插槽機制更新主GUI線程(更新QTableWidget)。
在我的工作線程,我有以下幾點:
self.emit(SIGNAL("alterTable(object"), params)
在我的GUI線程我有這樣的:
self.connect(self.worker, SIGNAL("alterTable(object)"), self.updateMainTable, Qt.AutoConnection)
由於正在運行的所有連接到相同的插槽幾個類似的工作線程(self.updateMainTable
),我應該使用AutoConnection(並因此使用QueuedConnection)。使用Qt.DirectConnection
作品,但它不安全(或者我已被告知)。
但是當我嘗試使用自動連接,我收到以下錯誤:
QObject::connect: Cannot queue arguments of type 'object'
(Make sure 'object' is registered using qRegisterMetaType().)
我用Google搜索永世試圖找出一種方式如何使用PySide的qRegisterMetaType()
,但無濟於事。我在網上找到的所有資源都指向C++語法/文檔。
如果有任何區別,大多數情況下所討論的對象是dict
。
如果您在信號\插槽中傳遞對象,那麼您的設計可能有缺陷。 – UmNyobe