Все мы знаем как существенно влияет наличие глобальных горячих клавиш на юзабилити приложения. Так что каждому программисту следует знать каким образом можно данную функцию реализовать…
А что нам (программистам) хочется? Правильно: писать один раз, а компилировать для всех ОС. И это возможно «без лишнего головняка» при помощи фреймворка Qxt. Его предварительно необходимо скачать и установить. Установка (компиляция) как говорится «стандартна»… её не буду описывать, тем более что на сайте разработчиков это и так понятно сделано..
Приступим.
Перед использованием библиотеки необходимо добавить такие строки в pro файл:
CONFIG += qxt
QXT += core gui
Описание всех модулей вы сможете найти всё на том же сайте разработчиков..
Теперь перейдём к кодингу… Допустим у нас был создан Gui проект в Qt Creator. Тогда нам понадобится изменить всего несколько строк.
Перейдём к описанию класса главного окна и добавим необходимую для горячих клавиш библиотеку:
#include <QxtGlobalShortcut>
Также понадобится добавить соответствующие поля и слот в класс:
private:
QString shortcutDef;
QxtGlobalShortcut hotkeyHandle;
private slots:
void hotkeyPressed();
После чего в конструкторе класса инициализируем объекты:
shortcutDef = QString(«Ctrl+Shift+X»); //зададим комбинацию
hotkeyHandle.setShortcut(QKeySequence(shortcutDef)); //установим комбинацию
hotkeyHandle.setEnabled(true); // «включаем» её
connect(&hotkeyHandle, SIGNAL(activated()), this, SLOT(hotkeyPressed())); //соединяем сигнал и подготовленный слот
В реализации слота укажем, к примеру, чтобы приложение завершало работу после нажатия клавиш:
void MainWindow::hotkeyPressed(){
qApp->quit();
}
Откомпилируйте приложение и опробуйте его работу..
Вы можете скачать мой проект.
Удачи в ваших начинаниях 😉