【问题标题】:How to pass along menu shortcuts from child widget holding focus in PyQt4?如何从在 PyQt4 中保持焦点的子小部件传递菜单快捷方式?
【发布时间】:2012-10-26 21:51:34
【问题描述】:

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

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

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

【问题讨论】:

    标签: python qt4 pyqt4 qt4.8


    【解决方案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"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-28
      • 2021-11-19
      • 1970-01-01
      相关资源
      最近更新 更多