Qt注册全局热键

时间:2022-11-18 23:09:43

Qt注册全局热键

首先到 https://github.com/ddqd/qxtglobalshortcut5 下载要用到的库
Qt注册全局热键
在工程 pro 文件中加入子项目依赖,然后再项目上 qmake 一下:

include($$PWD/../qxtglobalshortcut5-master/qxt.pri)

在头文件中包含 QxtGlobalShortcut 的头文件:

#include "qxtglobalshortcut.h"

使用:

    ui->setupUi(this);
shortcut = new QxtGlobalShortcut(this);
//可以通过
if(shortcut->setShortcut(QKeySequence("Alt+1")))
{
qDebug()<<"setShortcut sucess";
connect(shortcut, &QxtGlobalShortcut::activated,[=]() {qDebug() << "shortcut activated";});
}
else
{
qDebug()<<"setShortcut failed";
}

要想检测热键是否被占用,使用 setShortcut 设置热键即可,设置失败说明热键被占用,同一个QxtGlobalShortcut 对象 setShortcut 时,会先尝试反注册已设置的热键,再设置新的热键。