这可能是愚蠢的事,但我真的无法弄清楚自己。
我正在使用QtGui.QAction的包装类。代码是这样的:
class Action_Abstract(Abstract):
def __init__(self, app, menu):
Abstract.__init__(self, app)
action = QtGui.QAction(self.get_window())
action.setText('Text')
action.triggered.connect(self.execute)
menu.addAction(action)
def execute(self):
print 'Called'
没有抛出任何错误,菜单中会显示操作。但是当我点击动作时,不会调用self.execute。 有趣的是,如果我用例子中的QtGui.qApp.quit替换self.execute,它就可以工作。
我在这里缺少什么?
答案 0 :(得分:2)
您是否保留对Action_Abstract实例的引用?
如果不这样做,问题可能是Python对象被垃圾收集,这也会切断与self.execute的连接。