qt setshortcut 不响应三个快捷键_QT跨平台设置全局热键的方法

c82bc6544c8df7983a977b35eb49d497.png

前言

之间做待办列表的时候提过全局热键的功能,当时说后面会单独讲解跨平台设置全局热键的方法,今天就来兑现当时的承诺。话不多说,先来看一下实现效果:

039e4da6537f5d87d1ff7f7d7d0209c8.gif

QxtGlobalShortcut和QHotkey介绍

因为要想实现全局热键功能,无非要对按键事件进行过滤并处理,但是不同平台过滤和处理的方法又不同,所以对系统底层事件了解不是很清楚的话,自己实现起来就很有难度。而且很多人都觉得我就只是想添加一个全局热键而已,没必要那么大费周章吧,那么此时我们就要寻求可用的第三方库了。

github上有很多实现,但是支持跨平台且方便好用、稳定可靠的我只找到了两个,一个就是QxtGlobalShortcut(Qt5版本是QxtGlobalShortcut5),用这个库的人相对也比较多,我今天也主要介绍这种方法,另一个就是QHotkey,该库用的人较少,但是功能也很不错,具有以下特性:

  • 在Windows,Mac和X11上均可使用
  • 易于使用,可QKeySequence用于轻松快捷输入
  • 支持几乎所有常用键(取决于操作系统和键盘布局)
  • 允许直接输入键/修饰键组合
  • 支持同一快捷方式的多个QHotkey实例(具有优化)
  • 线程安全-可以在所有线程上使用(请参阅线程安全部分)
  • 如果需要,允许使用本机键码和修饰符

QxtGlobalShortcut项目地址:https://github.com/ddqd/qxtglobalshortcut5

QHotkey项目地址:https://github.com/xtuer/QHotkey

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值