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

194 篇文章 108 订阅

介绍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 *
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值