QT5 QWidget响应全局热键

 时间:2026-05-09 17:27:32

1、继承QAbstractNativeEventFilter

QT5 QWidget响应全局热键

2、实现bool nativeEventFilter(const QByteArray &eventType, void *message, long *result)

不同系统上消息结构体并不相同,这里是以windows顶层窗口为例。第二幅图是QtCreator内置帮助文档关于此函数的详细声明。

QT5 QWidget响应全局热键

QT5 QWidget响应全局热键

3、用对应的系统API注册热键。窗口句柄为(HWND)wInd,并对qApp对象调用installNativeEventFilter(this),把事件与QT窗口相关联。

QT5 QWidget响应全局热键

4、最小化窗口,用 ctrl+alt+q可以响应事件,发现激活应用,说明系统热键使用成功了。

Note:注意一下,在QtCreator的pro项目中 要写上LIBS += User32.lib,否则注册热键函数会无法调用(无法识别的外部符号),如果与其他已经注册的系统热键冲突,应当先调用UnregisterHotKey(HWND ,int)。

  • 菜鸟学习C#编程之连接带密码SQL Server 数据库
  • 使用Powershell计算指定日期是当年的第几天?
  • win10使用iSCSI服务 初始化磁盘
  • 在红帽RHEL7上面搭建gcc
  • 源码包安装configure脚本常用选项配置
  • 热门搜索
    种子大全 农村大门图片大全 西南石油大学怎么样 电脑自动开机怎么设置 尚铭按摩椅怎么样 读书笔记怎么写范文 芜湖职业技术学院怎么样 华泰保险怎么样 宣传视频怎么制作 芥菜疙瘩的做法大全