Связывание действий меню в PyQT - PullRequest
0 голосов
/ 28 февраля 2012

Возможно, это что-то глупое, но я сам не могу понять это.

Я использую класс-оболочку для 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 не вызывается, когда я нажимаю на действие. Забавно, что если я заменил self.execute на QtGui.qApp.quit из примера, это сработает.

Что мне здесь не хватает?

1 Ответ

2 голосов
/ 28 февраля 2012

Есть ли у вас ссылка на экземпляр Action_Abstract?

В противном случае проблема может заключаться в том, что объект Python является сборщиком мусора, который также прерывает соединение с self.execute.

...