基于Qt实现监听全局快捷方式/热键的操作。
QHotKey是一个类,可用于创建热键/全局快捷方式,也就是可在任何地方使用的快捷方式,而与应用程序状态无关。这意味着您的应用程序可以处于活动状态,非活动状态,最小化或根本不可见,并且仍会收到快捷方式。
注意:目前不支持Wayland,因为无法在Wayland中注册全局快捷方式。
通常的用法是为特定的热键创建QHotkey实例,注册它们,然后只要按下热键就可以简单地连接到发出的信号。
这个例子是全局监听ctrl + alt + Q
组合键,触发后置顶退出程序操作。
#include <QHotkey>
#include <QApplication>
#include <QDebug>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
auto hotkey = new QHotkey(QKeySequence("ctrl+alt+Q"), true, &a);//The hotkey will be automatically registered
qDebug() << "Is Registered: " << hotkey->isRegistered();
QObject::connect(hotkey, &QHotkey::activated, qApp, [&](){
qDebug() << "Hotkey Activated - the application will quit now";
qApp->quit();
});
return a.exec();
}
注意:您需要使用.pri include才能正常工作。
https://www.github.com/Skycoder42/QHotkey