QT5 QWidget响应全局热键

2025-05-15 02:48:58

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)。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢