2

したがって、PyQt4 でスタイル シグナルを作成する唯一の方法は次のとおりです。

class MyCustomClass(QtCore.QThread):
    custom_signal = QtCore.pyqtSignal(str)

私のビーフは、そのシグナルを他の場所で宣言すると、pyqt が custom_signal に connect() 関数がない方法についてエラーをスローすることです。

新しいスレッドを開始し、そのスレッドで作業を行い、結果を信号としてオブジェクトに送信するなどの単純なことをしたいときに、ボイラープレート/繰り返しコードを削除するのに役立つヘルパー関数を作成したいと思います。しかし、シグナルをクラスで定義する必要がある場合は困難です。

シグナルをローカル変数にする方法はありますか?

4

1 に答える 1

1

あなたの質問を正しく理解しているかどうかはわかりませんが、あなたのコメントから、どのタイプでも機能するシグナルを定義するだけで十分だと思われますか? その場合は、オブジェクトをタイプとして使用できます。

class MyCustomClass(QtCore.QThread):
    custom_signal = QtCore.pyqtSignal(object)

簡単なテスト:

>>> def callback(result):
...    print type(result)
...
>>> obj = MyCustomClass()
>>> obj.custom_signal.connect(callback)
>>> obj.custom_signal.emit('hello')
<type 'str'>
>>> obj.custom_signal.emit({'x': 1})
<type 'dict'>
于 2012-06-26T09:58:12.403 に答える