У меня есть приложение, которое открывает несколько дочерних виджетов как отдельные окна, что-то вроде этого: 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()'))
Прямо сейчас, если я открываю третий дочерний элемент и продвигаю CTRL+Q, ничего не происходит. Существует ли путь так, чтобы дети наследовали сочетание клавиш для выхода или сделать ярлык глобальным, или я должен объявить это в каждом из них?
Попробуйте установить ShortcutContext.
self.actionExit.setShortcutContext(QtCore.Qt.ApplicationShortcut)