我想使用QMetaObject::invokeMethod来调用一个对象的方法(稍后它将在另一个线程中运行,然后invokeMethod会派上用场)。我在python3.3上使用pyside1.2.1的qt4.8绑定。完整的例子是:
from PySide import QtCore
class Tester(QtCore.QObject):
def __init__(self):
super().__init__()
def beep(self):
print('beep')
if __name__ == '__main__':
t = Tester()
QtCore.QMetaObject.invokeMethod(t, 'beep', QtCore.Qt.AutoConnection)
输出是:
^{pr2}$而我期望beep
。未调用该方法。在
怎么了?看起来很简单,我找不到错误。在
编辑:我使用`@QtCore.槽“方法上的装饰。感谢你的评论和回答。在
不能调用常规方法,只能调用信号和插槽。这就是为什么它不适合你。有关它的详细信息,请参见QMetaObject documentation:
试试这个装饰师:
有关详细信息,请参见following documentation,以及this one:
相关问题 更多 >
编程相关推荐