Глобальные горячие клавиши в Qt при помощи Qxt

Все мы знаем как существенно влияет наличие глобальных горячих клавиш на юзабилити приложения. Так что каждому программисту следует знать каким образом можно данную функцию реализовать…
А что нам (программистам) хочется? Правильно: писать один раз, а компилировать для всех ОС. И это возможно «без лишнего головняка» при помощи фреймворка 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();
}

Откомпилируйте приложение и опробуйте его работу..

Вы можете скачать мой проект.
Удачи в ваших начинаниях 😉

 

Похожий код:

Фото аватара
Алексей Петров

Программист, разработчик с 5 летним опытом работы. Учусь на разработчика игр на Unity и разработчика VR&AR реальности (виртуальной реальности). Основные языки программирования: C#, C++.

Оцените автора
Бла, бла код
Добавить комментарий