Подтвердить что ты не робот

Отвечайте на "горячую клавишу" приложения в Qt

У меня есть простое приложение Qt, и я просто хочу ответить на клавишу F12, независимо от того, какой виджет имеет фокус.

Есть ли какой-нибудь простой сигнал или что-то, к чему я могу подключиться?

Я хочу использовать клавишу F12 для включения/выключения полноэкранного окна главного окна.

4b9b3361

Ответ 1

Я не пробовал, но вот что я буду делать:

Создайте QShortcut и убедитесь, что contextsetContext()) составляет 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 не работал у меня.