由于项目需要用到全局热键,开始一直以为是快捷键,结果怎么试怎么不行,原来快捷键是要有输入框检查的时候才行,比如光标在一个输入框中,那么这个快捷键就能触发事件,就行微信和QQ的enter发送键。
后来在网上找,找到了一个站在巨人肩膀上的博主,分享的一个全局热键的使用类。
完整的demo项目的GitHub链接如下:
https://github.com/despicable1211/QT-demo.git
使用方法如下:
//初始化变量,第一个参数,热键的快捷键组合,第二个参数为对象
shortcut = new MyGlobalShortCut("Ctrl+Shift+y",realMoniter);
//连接到指定的槽
QObject::connect(shortcut,SIGNAL(activated()),realMoniter,SLOT(displayFunction()));
shortcut2 = new MyGlobalShortCut("Ctrl+Shift+a",realMoniter);
//连接到指定的槽
QObject::connect(shortcut2,SIGNAL(activated()),realMoniter,SLOT(displayFunction2()));