PySide (Python Qt バインディング) を使用しています。
シグナル/スロットメカニズムを介してメイン GUI スレッドを更新する (QTableWidget を更新する) クラス QThread のワーカースレッドがあります。
私のワーカースレッドには、次のものがあります。
self.emit(SIGNAL("alterTable(object"), params)
私のGUIスレッドには次のものがあります:
self.connect(self.worker, SIGNAL("alterTable(object)"), self.updateMainTable, Qt.AutoConnection)
いくつかの同様のワーカー スレッドが実行され、すべてが同じスロット ( self.updateMainTable
) に接続されているため、AutoConnection (したがって QueuedConnection) を使用する必要があります。作品を使用してQt.DirectConnection
いますが、安全ではありません(またはそう言われました)。
しかし、AutoConnection を使用しようとすると、次のエラーが発生します。
QObject::connect: Cannot queue arguments of type 'object'
(Make sure 'object' is registered using qRegisterMetaType().)
qRegisterMetaType()
私は、PySide でを使用する方法を見つけようとして何年にもわたって Google で検索しましたが、役に立ちませんでした。私がオンラインで見つけたすべてのリソースは、C++ 構文/ドキュメントを指しています。
違いがある場合、問題のオブジェクトはdict
ほとんどの場合です。