我想用QMetaObject :: invokeMethod中来调用对象的方法(稍后会在另一个线程中运行,然后invokeMethod中派上用场)。 我用PySide 1.2.1的Qt的4.8绑定Python的3.3。 完整的例子是:
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)
而输出是:
QMetaObject::invokeMethod: No such method Tester::beep()
而我预计beep
。 该方法不被调用。
那么,什么是错的? 它似乎很简单,我无法找到的错误。
编辑:我用它来工作`@ QtCore.Slot”的方法装饰。 多亏了意见和答案。