0

我有一个带有菜单栏的QMainWindow ,包括使用常用快捷方式保存、打开和退出的菜单项。它创建了一个 QTableWidget,其中列出了用户可以选择的一堆不同类别(由他选择)。

如果用户单击QTableWidget以更改类别,则该小部件将获得焦点。这主要是我想要的,但不幸的是,它似乎窃取了菜单快捷方式,因此按下 Ctrl+S 不再触发保存。

我尝试keyPressEvent解决这个问题,但即使我确实让它工作,它似乎也有点过头了。没有办法将所有控制/菜单键委托给QMainWindow吗?

4

1 回答 1

1

您如何创建QMenuBar. 这是一个对我来说很好的例子。无论焦点在表格中,保存都会继续运行:

class Window(QtGui.QMainWindow):

    def __init__(self):
        super(Window, self).__init__()
        self.resize(640,480)

        menuBar = self.menuBar()
        menu = menuBar.addMenu("&File")
        action = menu.addAction("&Save", self.doAction)
        action.setShortcuts(QtGui.QKeySequence.Save)

        self.view = QtGui.QTableWidget(5,5)
        self.setCentralWidget(self.view)

    def doAction(self):
        print "Save"
于 2012-10-26T22:20:03.367 回答