专栏首页跟Qt君学编程使用Qt接口获取Windows系统的事件

使用Qt接口获取Windows系统的事件

介绍Qt4和Qt5获取Windows系统事件的方法。

Qt4版本的实现

方法1:

  • 通过继承QWidget的类中重新实现winEvent接口,以接收在消息参数中传递的本机Windows事件。
bool QWidget::winEvent(MSG *message, long *result)

方法2:

  • 通过继承QCoreApplication的类中重新实现winEventFilter接口,以接收在消息参数中传递的本机Windows事件。
bool QCoreApplication::winEventFilter(MSG *msg, long *result)

Qt5版本实现

方法1:

  • 通过继承QWidget的类中重新实现winEvent接口,以接收在消息参数中传递的eventType标识的本机平台事件。
bool QWidget::nativeEvent(const QByteArray &eventType, void *message, long *result)

方法2:

  • 通过继承QAbstractNativeEventFilter的类中重新实现nativeEventFilter接口:
bool QAbstractNativeEventFilter::nativeEventFilter(const QByteArray &eventType, void *message, long *result)

并安装到:

void QCoreApplication::installNativeEventFilter(QAbstractNativeEventFilter *filterObj)

安装到:

void QAbstractEventDispatcher::installNativeEventFilter(QAbstractNativeEventFilter *filterObj)
  • 特别地:不同平台对应的eventType类型有:

平台

事件类型(eventType)

消息类型(message)

结果类型(result)

Windows

"windows_generic_MSG"

MSG *

LRESULT

macOs

"NSEvent"

NSEvent *

XCB(Linux)

"xcb_generic_event_t"

xcb_generic_event_t *

本文分享自微信公众号 - Qt君(qtjuna)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-07-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • C++源文件添加License模板

    Qt君
  • Qt官方示例-嵌套甜甜圈

      先创建一个QChartView实例并启用抗锯齿。然后从QChartView实例获得一个QChart对象。

    Qt君
  • 正则表达式 | 循环体语法

    Qt君
  • Python __init__.py 文

    3. 编写Python代码(不建议在__init__中写python模块,可以在包中在创建另外的模块来写,尽量保证__init__.py简单)

    py3study
  • 巧用parallel极速提升数据加载速度(r2第21天)

    并行在平时工作中可能不是很注意,因为有时候即使设定了parallel 相关的hint,感觉性能也好不到哪去。这是我以前的感觉。 今天通过一个案例来分享一下通过p...

    jeanron100
  • python基础教程:包,对,没错,绝对不是双肩包!

    包,Package,是一种Python模块的集合,从文件组织形式上看,包就是一个文件夹,里面放着各种模块(.py文件),也可以有子文件夹(子包)。包名构建了一个...

    一墨编程学习
  • 关于Python导入模块,你可能没学透?!

    作为一名新手Python程序员,你首先需要学习的内容之一就是如何导入模块或包。但是我注意到,那些许多年来不时使用Python的人并不是都知道Python的导入机...

    马哥linux运维
  • 关于Python导入模块,你可能没学透?!

    作为一名新手Python程序员,你首先需要学习的内容之一就是如何导入模块或包。但是我注意到,那些许多年来不时使用Python的人并不是都知道Python的导入机...

    昱良
  • python包package和模块module导入深入详解

    作为一名新手Python程序员,你首先需要学习的内容之一就是如何导入模块或包。但是我注意到,那些许多年来不时使用Python的人并不是都知道Python的导入机...

    小草AI
  • 用了几年 Python,但你可能连这个都没学透

    在 Python 中用的最多的可能就是 import 了,几乎我们写的每个 Python 脚本都是需要的,但这个 import 其实也有些讲究的,比如用不好很可...

    崔庆才

扫码关注云+社区

领取腾讯云代金券