Respond to application-wide "hotkey" in Qt

I've got a simple Qt app, and I just want to respond to the F12 key, regardless of which widget has focus.

Is there some easy signal or something I can hook in to?

I want to use the F12 key to toggle the main window fullscreen on/off.

Answers


I haven't tried, but here is what I would do :

Create a QShortcut and make sure its context (with setContext()) is Qt::ApplicationShortcut.

shortcut = new QShortcut(QKeySequence(Qt::Key_F12), parent);
shortcut->setContext(Qt::ApplicationShortcut);

Then you just need to connect a slot to the QShortcut::activated() signal.


If you have a "central widget" which all of the other widgets are children of, then you can simply set that as the widget argument for QShortcut.

(Python, qt5)

self.centralwidget = QtWidgets.QWidget(MainWindow)

QtWidgets.QShortcut(QtGui.QKeySequence("F12"), self.centralwidget, self.goFullScreen)

I added this as an answer because the shortcut context flag: Qt.ApplicationShortcut did not work for me.


Need Your Help

How can I enable vertical split views in the Xcode IDE?

iphone xcode ipad ios

I'm diving into iOS development and I'm using Xcode on a multi-monitor setup.

Where to find practical well-designed database schema examples to learn from?

database

I am new to database schema design and I want to learn more about how a well-designed database scheme is implemented in the real world?