欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 家装 > 关于Qt快捷键的实现原因

关于Qt快捷键的实现原因

2025/4/20 5:15:44 来源:https://blog.csdn.net/Mario_z/article/details/144758895  浏览:    关键词:关于Qt快捷键的实现原因

Qt快捷键相关的类包括

1.基于QShortcut的方式去做全局快捷键

QKeySequence/ QShortcut /QAction/QShortcutMap

QKeySequence表示对于键盘的ID,最后可以保存四个键盘ID的组合,有一组枚举key_A…。初始化的化的时候既可通过枚举表示键盘ID,也可以通过字符串表,通过字符串表示的时候对字符串解码,生成对应的键盘ID。

QShortcut 表示一个激活快捷键动作的对象,继承与QObject,创建完这个对象,设置完对应的QKeySequence后,当触发快捷键后,能发送active信号通知其他的对象。QShortcut拥有除键盘ID以外的其他ID,包括对应的窗体,以及能激发快捷键的属性(应用全局,窗口,控件,控件及其子控件)。

QShortcutMap 是全局Application的成员变量,每定义一个QShortcut对象,就会在构造函数中调用redoGrab函数,将自己插入到全局QShortcutMap中。QShortcutMap中tryShortcutEvent函数负责接收KeyEvent,做事件的匹配,各种条件的判断。然后包装成QShortEvent发送到QShortcut中去。QShortcut中接收到了QShortEvent事件,然后再做条件判断,发送active信号。

QAction和QShortcut原理上基本一样,也有QKeySequence,初始化,将QKeySequence

保存到全局的QShortMap中,事件转发后,再event里面接收QShortcutEvent,然后激活actived()函数,触发信号。

2.在控制的事件函数中捕获键盘事件。

自己通过控件的KeyPressEvent去监听,然后去判断处理对应的事件逻辑。缺点是控件必须有焦点,能接收到对应的事件。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词