首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >使用Qt接口获取Windows系统的事件

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

作者头像
Qt君
发布2019-07-15 16:49:51
发布2019-07-15 16:49:51
4.1K00
举报
文章被收录于专栏:跟Qt君学编程跟Qt君学编程
运行总次数:0

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

Qt4版本的实现

方法1:

  • 通过继承QWidget的类中重新实现winEvent接口,以接收在消息参数中传递的本机Windows事件。
代码语言:javascript
代码运行次数:0
运行
复制
bool QWidget::winEvent(MSG *message, long *result)

方法2:

  • 通过继承QCoreApplication的类中重新实现winEventFilter接口,以接收在消息参数中传递的本机Windows事件。
代码语言:javascript
代码运行次数:0
运行
复制
bool QCoreApplication::winEventFilter(MSG *msg, long *result)

Qt5版本实现

方法1:

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

方法2:

  • 通过继承QAbstractNativeEventFilter的类中重新实现nativeEventFilter接口:
代码语言:javascript
代码运行次数:0
运行
复制
bool QAbstractNativeEventFilter::nativeEventFilter(const QByteArray &eventType, void *message, long *result)

并安装到:

代码语言:javascript
代码运行次数:0
运行
复制
void QCoreApplication::installNativeEventFilter(QAbstractNativeEventFilter *filterObj)

安装到:

代码语言:javascript
代码运行次数:0
运行
复制
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 *

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-07-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Qt君 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Qt4版本的实现
    • 方法1:
    • 方法2:
  • Qt5版本实现
    • 方法1:
    • 方法2:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档