Verwenden Sie QAction, ohne es dem Menü (oder der Symbolleiste) hinzuzufügen.

Ich versuche eine Anwendung mit einem sehr modularen Ansatz für Befehle zu entwickeln und dachte, es wäre schön, wenn ich pyqt verwende, um QActions zu verwenden, um Verknüpfungen zu den Befehlen zu binden.
Es scheint jedoch, dass Aktionsverknüpfungen nur funktionieren, wenn die Aktion in einem Menü oder einer Symbolleiste sichtbar ist. Kennt jemand eine Möglichkeit, diese Aktion zum Laufen zu bringen, ohne dass sie sichtbar wird?
Unten ein Beispielcode, der zeigt, was ich versuche.
Vielen Dank,

André

from PyQt4 import *
from PyQt4.QtCore import *
from PyQt4.QtGui import *
import sys

class TesteMW(QMainWindow):
    def __init__(self, *args):
        QMainWindow.__init__(self, *args)
        self.create_action()

    def create_action(self):
        self.na = QAction(self)
        self.na.setText('Teste')
        self.na.setShortcut('Ctrl+W')
        self.connect(self.na, SIGNAL('triggered()'), self.action_callback)
        # uncomment the next line for the action to work
        # self.menuBar().addMenu("Teste").addAction(self.na)

    def action_callback(self):
        print 'action called!'


app = QApplication(sys.argv)
mw = TesteMW()
mw.show()

app.exec_()

Antworten auf die Frage(1)

Ihre Antwort auf die Frage