Qt之QEvent

简述

QEvent 类是所有事件类的基类,事件对象包含事件参数。

Qt 的主事件循环(QCoreApplication::exec())从事件队列中获取本地窗口系统事件,将它们转化为 QEvents,然后将转换后的事件发送给 QObjects。

一般来说,事件来自底层窗口系统(spontaneous() 返回 true),但也可以使用 QCoreApplication::sendEvent() 和 QCoreApplication::postEvent()(spontaneous() 返回 false)来手动发送事件。

QObjects 通过调用它们的 QObject::event() 函数接收事件。该函数可以在子类中重新实现,来处理自定义的事件以及添加额外的事件类型,QWidget::event() 就是一个很著名的例子。默认情况下,像 QObject::timerEvent() 和 QWidget::mouseMoveEvent() 这样的事件可以被发送给事件处理函数。QObject::installEventFilter() 允许一个对象拦截发往另一个对象的事件。

基本的 QEvent 只包含了一个事件类型参数。QEvent 的子类包含了额外的描述特定事件的参数。

成员类型

枚举QEvent::Type:

这个枚举类型定义了Qt中有效的事件类型。事件类型和每个类型的专门类如下:

常量 描述
QEvent::None 0 不是一个事件
QEvent::ActionAdded 114 一个新 action 被添加(QActionEvent)
QEvent::ActionChanged 113 一个 action 被改变(QActionEvent)
QEvent::ActionRemoved 115 一个 action 被移除(QActionEvent)
QEvent::ActivationChange 99 Widget 的顶层窗口激活状态发生了变化
QEvent::ApplicationActivate 121 这个枚举已被弃用,使用 ApplicationStateChange 代替
QEvent::ApplicationActivated ApplicationActivate 这个枚举已被弃用,使用 ApplicationStateChange 代替
QEvent::ApplicationDeactivate 122 这个枚举已被弃用,使用 ApplicationStateChange 代替
QEvent::ApplicationFontChange 36 应用程序的默认字体发生了变化
QEvent::ApplicationLayoutDirectionChange 37 应用程序的默认布局方向发生了变化
QEvent::ApplicationPaletteChange 38 应用程序的默认调色板发生了变化
QEvent::ApplicationStateChange 214 应用程序的状态发生了变化
QEvent::ApplicationWindowIconChange 35 应用程序的图标发生了变化
QEvent::ChildAdded 68 一个对象获得孩子(QChildEvent)
QEvent::ChildPolished 69 一个部件的孩子被抛光(QChildEvent)
QEvent::ChildRemoved 71 一个对象时区孩子(QChildEvent)
QEvent::Clipboard 40 剪贴板的内容发生改变
QEvent::Close 19 Widget 被关闭(QCloseEvent)
QEvent::CloseSoftwareInputPanel 200 一个部件要关闭软件输入面板(SIP)
QEvent::ContentsRectChange 178 部件内容区域的外边距发生改变
QEvent::ContextMenu 82 上下文弹出菜单(QContextMenuEvent)
QEvent::CursorChange 183 部件的鼠标发生改变
QEvent::DeferredDelete 52 对象被清除后将被删除(QDeferredDeleteEvent)
QEvent::DragEnter 60 在拖放操作期间鼠标进入窗口部件(QDragEnterEvent)
  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值