私はGUIスレッドをmain以外のPythonスレッドから更新する方法を見つけようとしています。 sourceforgeのPyQt5 docsには、これを行う方法に関する良い指示があります。しかし、私はまだ物事を働かせることはできません。PyQt5シグナルとスロット 'QObjectには属性がありません'というエラーがあります
インタラクティブセッションからの次の出力を説明する良い方法はありますか?これらのオブジェクトでemitメソッドを呼び出す方法はありませんか?
>>> from PyQt5.QtCore import QObject, pyqtSignal
>>> obj = QObject()
>>> sig = pyqtSignal()
>>> obj.emit(sig)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'QObject' object has no attribute 'emit'
と
>>> obj.sig.emit()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'QObject' object has no attribute 'sig'
と
>>> obj.sig = pyqtSignal()
>>> obj.sig.emit()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'PyQt5.QtCore.pyqtSignal' object has no attribute 'emit'
:[PyQt5どのモジュールで発光方法が発見された?](http://stackoverflow.com/questions/17581506/pyqt5-in-what-module-is-the-emit-method -found) - __bound__シグナルだけが 'emit'メソッドを持っています。 ( 'obj.sig = pyqtSignal()'は依然としてバインドされていない信号です) – mata
@mata:はい、私はsourceforgeのPyQt5ドキュメントからこれらの例を取っていました。あなたが[指摘したように](http://stackoverflow.com/questions/17581506/pyfqt5-in-what-module-is-the-emit-method-found)、emitメソッドはバインドされたシグナル用です。すなわち、 QObjectから継承するクラスのメンバです。私は上に貼り付けられたインタラクティブなセッションでそれをやっていないことに気づいていませんでした。 – ADB
@ mata:興味深いことに、上記の3番目の例のように、** obj.sig = pyqtSignal()**の有用性は何ですか? – ADB