我有正确的,我PySide的Python的Qt程序中使用的信号的麻烦。 我想发出,需要一个定制Python类型的一个参数的信号。 该文件说:
信号可以使用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派生?
这是与Python 2.7.2和1.0.4 PySide在Windows 7上。