PySide python Qt プログラムでシグナルを正しく使用できません。カスタムの python 型の引数を 1 つ受け取るシグナルを発行したいと考えています。ドキュメントに よると
シグナルは QtCore.signal() クラスを使用して定義できます。Python 型と C 型をパラメーターとして渡すことができます。
だから私は次のことを試しました:
from PySide import QtCore
from PySide.QtCore import QObject
class Foo:
pass
class Bar(QObject):
sig = QtCore.Signal(Foo)
def baz(self):
foo = Foo()
self.sig.emit(foo)
bar = Bar()
bar.baz()
しかし、次のエラーが発生します。
Traceback (most recent call last):
File "test.py", line 15, in <module>
bar.baz()
File "test.py", line 12, in baz
self.sig.emit(foo)
TypeError: sig() only accepts 0 arguments, 1 given!
代わりに QObject から Foo クラスを派生させると、プログラムはエラーなしで実行されます。しかし、その型が QObject から派生していなくても、カスタム型を引数としてシグナルに渡すことはできませんか?
これは、Windows 7 の python 2.7.2 および PySide 1.0.4 を使用しています。