Отвечайте на "горячую клавишу" приложения в Qt
У меня есть простое приложение Qt, и я просто хочу ответить на клавишу F12, независимо от того, какой виджет имеет фокус.
Есть ли какой-нибудь простой сигнал или что-то, к чему я могу подключиться?
Я хочу использовать клавишу F12 для включения/выключения полноэкранного окна главного окна.
Ответы
Ответ 1
Я не пробовал, но вот что я буду делать:
Создайте QShortcut и убедитесь, что context (с setContext()
) составляет Qt::ApplicationShortcut
.
shortcut = new QShortcut(QKeySequence(Qt::Key_F12), parent);
shortcut->setContext(Qt::ApplicationShortcut);
Затем вам просто нужно подключить слот к сигналу QShortcut:: active().
Ответ 2
Если у вас есть "центральный виджет", к которому относятся все остальные виджеты, то вы можете просто установить его как аргумент виджета для QShortcut.
(Python, qt5)
self.centralwidget = QtWidgets.QWidget(MainWindow)
QtWidgets.QShortcut(QtGui.QKeySequence("F12"), self.centralwidget, self.goFullScreen)
Я добавил это как ответ, потому что ярлык контекстного контекста: Qt.ApplicationShortcut
не работал у меня.