这两天对Qt的快捷键格外感兴趣。
前两天在使用QHotKey的过程中,发现不能定义小键盘键盘码,自己二次修改了该库之后已经可以设置小键盘快捷键了。文章在这里:Qt第三方库QHotKey设置小键盘数字快捷键。
昨天突发奇想:目前所有的快捷键,都是由组合键和键盘码组合而成的。在快捷键的使用上有很大的限制。对应一些工作繁忙,或者使用较多快捷键的情况下反而不够。
所以能不能有这样一种快捷键,无视组合,就算单个字符或者数字都能作为快捷键的使用呢?
这里肯定要考虑,如果单个按作为快捷键的话,改键就不能做为正常键使用了。所以设计QGlobalHotKey的时候,设置了响应的一键失效,一键起效的功能。如果要想正常使用键盘,则一键失效即可。
不知道这种开发是不是多余的哦。但是花费两天时间自己开发玩玩还是蛮舒服的。
QGlobalHotKey.h:快捷键注册、移除快捷键、快捷键响应信号
QGlobalHotKeyEdit:快捷键的呈现方式可视化,继承QLineEdit 自研。
QGlobalHotKeyManager.h : 存储管理和按键检测管理 响应管理
话不多说上思路。
1、规整所有的键盘码和其字符表达式
2、键盘按下的时候显示响应的字符串
3、注册快捷键并存储,绑定快捷键响应时候的信号
4、全局监控键盘响应事件
5、遍历存储的键盘列表是否和注册的有相同的
6、有相同的则发送通知快捷键响应。
以上所有的组合皆可相应。并且能够区分左右 Ctrl Shift Alt Win键。区分数字键和小键盘数字键。
现在完美了,全局快捷键这块再也困不到我了。