PyQt4全局快捷方式?

Vir*_*liu 8 python pyqt pyqt4

我有一个应用程序,打开多个子窗口小部件作为单独的窗口,如下所示:window1打开窗口2,打开窗口3(简化形式).

在主窗口中,我将CTRL + Q设置为退出快捷方式.下面是主类的精简示例.

class MainWindow(QtGui.QMainWindow):
    def __init__(self):
        QtGui.QMainWindow.__init__(self)
        self.actionExit = QtGui.QAction(_('E&xit'),self)
        self.actionExit.setShortcut('Ctrl+Q')
        self.actionExit.setStatusTip(_('Close application'))
        self.connect(self.actionExit, QtCore.SIGNAL('triggered()'), QtCore.SLOT('close()'))
Run Code Online (Sandbox Code Playgroud)

现在,如果我打开第三个孩子并推动CTRL + Q没有任何反应.是否有一种方法可以让孩子继承退出的快捷键或使快捷方式成为全局,或者我必须在每个中声明它?

小智 12

这是我在__init__功能中使用的: QtGui.QShortcut(QtGui.QKeySequence("Ctrl+Q"), self, self.close)

它运作顺利!


Chr*_* B. 3

尝试设置ShortcutContext

self.actionExit.setShortcutContext(QtCore.Qt.ApplicationShortcut)
Run Code Online (Sandbox Code Playgroud)