PyQt4全局快捷方式?

2024-09-29 11:27:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个应用程序将多个子窗口小部件作为单独的窗口打开,如下所示:window1打开window 2打开window 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()'))

现在,如果我打开第三个孩子并按CTRL+Q,什么都不会发生。是否有方法使子项继承quit的快捷键或使快捷键成为全局快捷键,或者我必须在每个子项中声明它?


Tags: self应用程序示例init部件window快捷键形式
3条回答

尝试设置ShortcutContext

self.actionExit.setShortcutContext(QtCore.Qt.ApplicationShortcut)

以下是我在__init__函数中使用的内容: QtGui.QShortcut(QtGui.QKeySequence("Ctrl+Q"), self, self.close)

工作顺利!

您也可以直接为您的QAction设置快捷方式:

self.actionExit.setShortcut(QtGui.QKeySequence("Ctrl+Q"))

这个例子和您的代码之间的唯一区别是Ctrl+Q首先被转换为QtGui.QKeySequence

相关问题 更多 >