PyQT中的绑定菜单操作

时间:2012-02-28 11:04:49

标签: python qt qt4 pyqt pyqt4

这可能是愚蠢的事,但我真的无法弄清楚自己。

我正在使用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,它就可以工作。

我在这里缺少什么?

1 个答案:

答案 0 :(得分:2)

您是否保留对Action_Abstract实例的引用?

如果不这样做,问题可能是Python对象被垃圾收集,这也会切断与self.execute的连接。