Qt5注册全局热键
简述
最近写Qt程序需要用到注册全局热键,百度了好多,也没有找到成功的(可能我用的是假百度吧),几天后,找到一个案例,终于成功。本文全部是基于这个例程进行编写的。正所谓,站在巨人的肩上!
尽量写的详细一点,使新手学习过程中少走弯路。文章最后会有项目全部代码,仅供参考。
相关环境
Qt 5.6
Windows 8.1
没有在linux系统运行,我只针对windows做了测试。
实例
新建一个窗口程序
项目命名
一直点击下一步完成后,项目的目录结构如下
添加相关文件
在项目中添加响应热键所需的文件,点击此处下载文件
将文件复制到项目目录下,如图
在项目上面右键,选择添加现有文件
在弹出窗口选择刚才的文件,记得全部选中
点击打开后,项目的文件结构已经发生了变化
代码编辑
在main.cpp文件添加有文件
#include<MyGlobalShortCut/MyGlobalShortCut.h>
- 1
然后在main函数中添加热键注册和绑定的代码
MyGlobalShortCut *shortcut = new MyGlobalShortCut("Ctrl+F10",&w);
QObject::connect(shortcut,SIGNAL(activated()),&w,SLOT(showHide()));
- 1
- 2
main.cpp修改截图如下
showHide()是Dialog里面的一个slot,这个是需要我们进行自定义的,打开Dialog.h添加声明。函数名任意。
public slots:
void showHide();
- 1
- 2
在Dialog.cpp文件中定义showHide()函数,此函数内完成响应热键的事件。本例中简单的写个弹出提示框。
void Dialog::showHide()
{
if(isShow)
hide();
else
show();
isShow=!isShow;
}
运行测试
运行之后,按Ctrl+F10可以隐藏对话框,再按Ctrl+F10可以显示对话框。
具体代码:https://download.csdn.net/download/komtao520/10417391