Реклама

QGlobalShortcut – Global hotkeys

In the process of studying the issues with global hotkeys for Linux and Windows, I wrote my library for quick registration hotkeys. The resulting library is called QGlobalShortcut and is available at GitHub under license LGPLv2. The library supports the Windows platform and Linux / Unix (which use X11) The logic of class QGlobalShortcut, which provides this…

Глобальный HotKey в Linux в приложении на Qt 5.5

Работа с глобальными хоткеями в Windows является более тривиальной задачей, чем в Linux, поскольку в WinAPI имеются для этого подготовленные методы, которые не требуют большого количества кода. А также каждому хоткею устанавливается в соответствие ID, по которому данный хоткей можно удалить. В Linux/Unix, которые используют графический сервер X11, применительно к Qt необходимо использовать функции для регистрации/разрегистрации хоткеев из…
Advertisement

XUngrabKey – Hotkey removal method on X11

Syntax Arguments Description The XUngrabKey() function releases the key combination on the specified window if it was grabbed by this client. It has no effect on an active grab. A modifiers of AnyModifier is equivalent to issuing the request for all possible modifier combinations (including the combination of no modifiers). A keycode argument of AnyKey…

XGrabKey – Installation method of global HotKey on X11

Syntax Arguments Description The XGrabKey() function establishes a passive grab on the keyboard. In the future, the keyboard is actively grabbed (as for XGrabKeyboard()), the last-keyboard-grab time is set to the time at which the key was pressed (as transmitted in the KeyPress event), and the KeyPress event is reported if all of the following…

Разбор QKeySequence для RegisterHotKey в WinAPI

QKeySequence сильно отличается от последовательности горячих клавиш в WinAPI. QKeySequence фактически является строкой, в которой разделителем горячих клавиш являются знак “+”, а также последовательность “, “ в случае, если последовательностей несколько. Тогда, как в WinAPI имеются модификаторы Alt, Ctrl, Shift, которые представлены беззнаковым целочисленным типом, и горячей клавишей, которая представлена кодом клавиатуры. Разберём вариант, когда…

Глобальный HotKey WinAPI в Qt 5.5

Для работы с глобальными HotKey в Qt 5.5 присутствует виртуальный метод nativeEvent. Данный метод заменил методы winEvent, x11Event, macEvent из Qt 4.8.  Фишка в работе HotKey с Qt заключается в том, что если окно находится не в фокусе, то есть оно, например, будет свёрнуто в системный трей, то тогда зарегистрированные QShortcut работать просто не будут. Поэтому необходимо…