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)
QEvent::DragLeave    62    在拖放操作期间鼠标离开窗口部件(QDragLeaveEvent)
QEvent::DragMove    61    拖放操作正在进行(QDragMoveEvent)
QEvent::Drop    63    拖放操作完成(QDropEvent)
QEvent::DynamicPropertyChange    170    动态属性已添加、更改或从对象中删除
QEvent::EnabledChange    98    部件的 enabled 状态已更改
QEvent::Enter    10    鼠标进入部件的边界(QEnterEvent)
QEvent::EnterEditFocus    150    编辑部件获得焦点进行编辑,必须定义 QT_KEYPAD_NAVIGATION
QEvent::EnterWhatsThisMode    124    当应用程序进入“What’s This?”模式,发送到 toplevel 顶层部件
QEvent::Expose    206    当其屏幕上的内容无效,发送到窗口,并需要从后台存储刷新
QEvent::FileOpen    116    文件打开请求(QFileOpenEvent)
QEvent::FocusIn    8    部件或窗口获得键盘焦点(QFocusEvent)
QEvent::FocusOut    9    部件或窗口失去键盘焦点(QFocusEvent)
QEvent::FocusAboutToChange    23    部件或窗口焦点即将改变(QFocusEvent)
QEvent::FontChange    97    部件的字体发生改变
QEvent::Gesture    198    触发了一个手势(QGestureEvent)
QEvent::GestureOverride    202    触发了手势覆盖(QGestureEvent)
QEvent::GrabKeyboard    188    Item 获得键盘抓取(仅限 QGraphicsItem)
QEvent::GrabMouse    186    项目获得鼠标抓取(仅限 QGraphicsItem)
QEvent::GraphicsSceneContextMenu    159    在图形场景上的上下文弹出菜单(QGraphicsScene ContextMenuEvent)
QEvent::GraphicsSceneDragEnter    164    在拖放操作期间,鼠标进入图形场景(QGraphicsSceneDragDropEvent)
QEvent::GraphicsSceneDragLeave    166    在拖放操作期间鼠标离开图形场景(QGraphicsSceneDragDropEvent)
QEvent::GraphicsSceneDragMove    165    在场景上正在进行拖放操作(QGraphicsSceneDragDropEvent)
QEvent::GraphicsSceneDrop    167    在场景上完成拖放操作(QGraphicsSceneDragDropEvent)
QEvent::GraphicsSceneHelp    163    用户请求图形场景的帮助(QHelpEvent)
QEvent::GraphicsSceneHoverEnter    160    鼠标进入图形场景中的悬停项(QGraphicsSceneHoverEvent)
QEvent::GraphicsSceneHoverLeave    162    鼠标离开图形场景中一个悬停项(QGraphicsSceneHoverEvent)
QEvent::GraphicsSceneHoverMove    161    鼠标在图形场景中的悬停项内移动(QGraphicsSceneHoverEvent)
QEvent::GraphicsSceneMouseDoubleClick    158    鼠标在图形场景中再次按下(双击)(QGraphicsSceneMouseEvent)
QEvent::GraphicsSceneMouseMove    155    鼠标在图形场景中移动(QGraphicsSceneMouseEvent)
QEvent::GraphicsSceneMousePress    156    鼠标在图形场景中按下(QGraphicsSceneMouseEvent)
QEvent::GraphicsSceneMouseRelease    157    鼠标在图形场景中释放(QGraphicsSceneMouseEvent)
QEvent::GraphicsSceneMove    182    部件被移动(QGraphicsSceneMoveEvent)
QEvent::GraphicsSceneResize    181    部件已调整大小(QGraphicsSceneResizeEvent)
QEvent::GraphicsSceneWheel    168    鼠标滚轮在图形场景中滚动(QGraphicsSceneWheelEvent)
QEvent::Hide    18    部件被隐藏(QHideEvent)
QEvent::HideToParent    27    子部件被隐藏(QHideEvent)
QEvent::HoverEnter    127    鼠标进入悬停部件(QHoverEvent)
QEvent::HoverLeave    128    鼠标留离开悬停部件(QHoverEvent)
QEvent::HoverMove    129    鼠标在悬停部件内移动(QHoverEvent)
QEvent::IconDrag    96    窗口的主图标被拖走(QIconDragEvent)
QEvent::IconTextChange    101    部件的图标文本发生改变(已弃用)
QEvent::InputMethod    83    正在使用输入法(QInputMethodEvent)
QEvent::InputMethodQuery    207    输入法查询事件(QInputMethodQueryEvent)
QEvent::KeyboardLayoutChange    169    键盘布局已更改
QEvent::KeyPress    6    键盘按下(QKeyEvent)
QEvent::KeyRelease    7    键盘释放(QKeyEvent)
QEvent::LanguageChange    89    应用程序翻译发生改变
QEvent::LayoutDirectionChange    90    布局的方向发生改变
QEvent::LayoutRequest    76    部件的布局需要重做
QEvent::Leave    11    鼠标离开部件的边界
QEvent::LeaveEditFocus    151    编辑部件失去编辑的焦点,必须定义 QT_KEYPAD_NAVIGATION
QEvent::LeaveWhatsThisMode    125    当应用程序离开“What’s This?”模式,发送到顶层部件
QEvent::LocaleChange    88    系统区域设置发生改变
QEvent::NonClientAreaMouseButtonDblClick    176    鼠标双击发生在客户端区域外
QEvent::NonClientAreaMouseButtonPress    174    鼠标按钮按下发生在客户端区域外
QEvent::NonClientAreaMouseButtonRelease    175    鼠标按钮释放发生在客户端区域外
QEvent::NonClientAreaMouseMove    173    鼠标移动发生在客户区域外
QEvent::MacSizeChange    177    用户更改了部件的大小(仅限 OS X)
QEvent::MetaCall    43    通过 QMetaObject::invokeMethod() 调用异步方法
QEvent::ModifiedChange    102    部件修改状态发生改变
QEvent::MouseButtonDblClick    4    鼠标再次按下(QMouseEvent)
QEvent::MouseButtonPress    2    鼠标按下(QMouseEvent)
QEvent::MouseButtonRelease    3    鼠标释放(QMouseEvent)
QEvent::MouseMove    5    鼠标移动(QMouseEvent)
QEvent::MouseTrackingChange    109    鼠标跟踪状态发生改变
QEvent::Move    13    部件的位置发生改变(QMoveEvent)
QEvent::NativeGesture    197    系统检测到手势(QNativeGestureEvent)
QEvent::OrientationChange    208    屏幕方向发生改变(QScreenOrientationChangeEvent)
QEvent::Paint    12    需要屏幕更新(QPaintEvent)
QEvent::PaletteChange    39    部件的调色板发生改变
QEvent::ParentAboutToChange    131    部件的 parent 将要更改
QEvent::ParentChange    21    部件的 parent 发生改变
QEvent::PlatformPanel    212    请求一个特定于平台的面板
QEvent::PlatformSurface    217    原生平台表面已创建或即将被销毁(QPlatformSurfaceEvent)
QEvent::Polish    75    部件被抛光
QEvent::PolishRequest    74    部件应该被抛光
QEvent::QueryWhatsThis    123    如果部件有“What’s This?”帮助,应该接受事件
QEvent::ReadOnlyChange    106    部件的 read-only 状态发生改变
QEvent::RequestSoftwareInputPanel    199    部件想要打开软件输入面板(SIP)
QEvent::Resize    14    部件的大小发生改变(QResizeEvent)
QEvent::ScrollPrepare    204    对象需要填充它的几何信息(QScrollPrepareEvent)
QEvent::Scroll    205    对象需要滚动到提供的位置(QScrollEvent)
QEvent::Shortcut    117    快捷键处理(QShortcutEvent)
QEvent::ShortcutOverride    51    按下按键,用于覆盖快捷键(QKeyEvent)
QEvent::Show    17    部件显示在屏幕上(QShowEvent)
QEvent::ShowToParent    26    子部件被显示
QEvent::SockAct    50    Socket 激活,用于实现 QSocketNotifier
QEvent::StateMachineSignal    192    信号被传递到状态机(QStateMachine::SignalEvent)
QEvent::StateMachineWrapped    193    事件是一个包装器,用于包含另一个事件(QStateMachine::WrappedEvent)
QEvent::StatusTip    112    状态提示请求(QStatusTipEvent)
QEvent::StyleChange    100    部件的样式发生改变
QEvent::TabletMove    87    Wacom 写字板移动(QTabletEvent)
QEvent::TabletPress    92    Wacom 写字板按下(QTabletEvent)
QEvent::TabletRelease    93    Wacom 写字板释放(QTabletEvent)
QEvent::OkRequest    94    Ok 按钮在装饰前被按下,仅支持 Windows CE
QEvent::TabletEnterProximity    171    Wacom 写字板进入接近事件(QTabletEvent),发送到 QApplication
QEvent::TabletLeaveProximity    172    Wacom 写字板离开接近事件(QTabletEvent),发送到 QApplication
QEvent::ThreadChange    22    对象被移动到另一个线程。这是发送到此对象的最后一个事件在上一个线程中,参见:QObject::moveToThread()
QEvent::Timer    1    定时器事件(QTimerEvent)
QEvent::ToolBarChange    120    工具栏按钮在 OS X 上进行切换
QEvent::ToolTip    110    一个 tooltip 请求(QHelpEvent)
QEvent::ToolTipChange    184    部件的 tooltip 发生改变
QEvent::TouchBegin    194    触摸屏或轨迹板事件序列的开始(QTouchEvent)
QEvent::TouchCancel    209    取消触摸事件序列(QTouchEvent)
QEvent::TouchEnd    196    触摸事件序列结束(QTouchEvent)
QEvent::TouchUpdate    195    触摸屏事件(QTouchEvent)
QEvent::UngrabKeyboard    189    Item 失去键盘抓取(QGraphicsItem)
QEvent::UngrabMouse    187    Item 失去鼠标抓取(QGraphicsItem、QQuickItem)
QEvent::UpdateLater    78    部件应该排队在以后重新绘制
QEvent::UpdateRequest    77    部件应该被重绘
QEvent::WhatsThis    111    部件应该显示“What’s This”帮助(QHelpEvent)
QEvent::WhatsThisClicked    118    部件的“What’s This”帮助链接被点击
QEvent::Wheel    31    鼠标滚轮滚动(QWheelEvent)
QEvent::WinEventAct    132    发生了 Windows 特定的激活事件
QEvent::WindowActivate    24    窗口已激活
QEvent::WindowBlocked    103    窗口被模态对话框阻塞
QEvent::WindowDeactivate    25    窗户被停用
QEvent::WindowIconChange    34    窗口的图标发生改变
QEvent::WindowStateChange    105    窗口的状态(最小化、最大化或全屏)发生改变(QWindowStateChangeEvent)
QEvent::WindowTitleChange    33    窗口的标题发生改变
QEvent::WindowUnblocked    104    一个模态对话框退出后,窗口将不被阻塞
QEvent::WinIdChange    203    本地窗口的系统标识符发生改变
QEvent::ZOrderChange    126    部件的 z 值发生了改变,该事件不会发送给顶层窗口
用户事件的值应该介于 User 和 MaxUser 之间。

常量    值    描述
QEvent::User    1000    用户定义的事件
QEvent::MaxUser    65535    最后的用户事件 ID
为方便起见,可以使用 registerEventType() 函数来注册和存储一个自定义事件类型,这样做会避免意外地重用一个自定义事件类型。

属性文档
accepted : bool

设置 accept 标志意味着接收器需要该事件,不需要的事件可能会被传递给它的父窗口。默认情况下,isAccepted() 设置为 true。不能依赖于此,因为子类可能会在子类构造器中清除该标志。

出于简便考虑,accept 标志可以通过 accept() 设置,ignore() 清除。

访问函数:

bool isAccepted() const
void setAccepted(bool accepted)
成员函数文档
void QEvent::accept() 
设置事件对象的 accept 标志,等价于 setAccepted(true)。

设置 accept 标志意味着接收器需要该事件,不需要的事件可能会被传递给它的父窗口。

void QEvent::ignore() 
清除事件对象的 accept 标志,等价于 setAccepted(false)。

清除 accept 标志意味着事件接收器不需要该事件,不需要的事件可能会被传递给它的父窗口。

[static] int QEvent::registerEventType(int hint = -1) 
注册并返回一个自定义事件类型。如果 hint 是合法的,则会返回这个值;否则,会返回介于 QEvent::User 和 QEvent::MaxUser 之间的一个尚未被注册的值。如果其值不在 QEvent::User 和 QEvent::MaxUser 之间,hint 值将被忽略。

如果可用的值被使用或程序关闭,将返回 -1。该函数是线程安全的。

bool QEvent::spontaneous() const 
如果事件由应用程序之外产生的,比如一个系统事件,返回 true,否则返回 false。

对于绘制事件,该函数的返回值是未定义的。

Type QEvent::type() const 
返回事件的类型

Qt之QEvent(所有事件的翻译)相关推荐

  1. Qt Quick的多国语言翻译

    一.翻译Qt Quick应用软件 1.对所有用户界面中的文字字符串使用qsTr() QML中的字符串可以使用qsTr().qsTranslate().qsTrId().QT_TR_NOOP().QT_ ...

  2. Qt Dock Widgets 官方示例的翻译

    目录名字 Qt Dock Widgets 官方示例的翻译 Dock Widgets Example 介绍: MainWindow Class 定义: MainWindow Class 关联的相关头文件 ...

  3. Qt学习(三):事件、定时器、事件过滤器

    知识点 mybutton.cpp 判断是否左键 mylabel.cpp 判断是左键 中键还是右键按下.进入离开窗口区域的显示 mywidget.cpp 定时器 事件过滤器 关闭提醒事件,关闭的时候提示 ...

  4. Qt消息机制和事件、事件过滤

    一,事件 事件(event)是由系统或者 Qt 本身在不同的时刻发出的.当用户按下鼠标.敲下键盘,或者是窗口需要重新绘制的时候,都会发出一个相应的事件.一些事件在对用户操作做出响应时发出,如键盘事件等 ...

  5. Qt消息机制和事件概述(一)

    一,事件 事件(event)是由系统或者 Qt 本身在不同的时刻发出的.当用户按下鼠标.敲下键盘,或者是窗口需要重新绘制的时候,都会发出一个相应的事件.一些事件在对用户操作做出响应时发出,如键盘事件等 ...

  6. QT中父子窗口事件传递与事件过滤器

    处理监控系统的时候遇到问题,在MainWidget中创建多个子Widget的时候,原意是想鼠标点击先让MainWidget截获处理后再分派给子Widget去处理,但调试后发现如果子Widget重新实现 ...

  7. QT 中英文切换-国际化(解决部分翻译不起作用的问题)

    中英文切换-国际化 1.先看效果 2.核心代码(重新赋值刷新翻译文本) 2.0 pro文件配置 2.1 构造函数 2.2 两个按钮点击事件 3.翻译文件的生成与配置 4. 参考链接 1.先看效果 2. ...

  8. Qt on Android Episode 1(翻译)

    在 KDAB ( the Qt experts ) 上看到了  BogDan Vatra 的 Qt on Android 的系列文章,生了翻译的念头,那就开始吧. 我会跟随 BogDan Vatra  ...

  9. Qt Linguist基于文本ID的翻译

    Qt Linguist基于文本ID的翻译 基于文本ID的翻译 使用文本ID进行国际化 使用文本ID进行本地化 高级用法 基于文本ID的翻译 文本ID转换机制是用于国际化和本地化的"工业力量& ...

最新文章

  1. 又一例“监视员工?”百度回应:和 996 无关,目前没有任何应用
  2. LBS 基于位置的服务
  3. 「模型训练」如何迁移学习一个小网络到移动端
  4. 【剑指offer-Java版】19二叉树的镜像
  5. mySql的case when用法
  6. 两块 硬盘 主从盘跳线详解
  7. C语言实现段树segment tree(附完整源码)
  8. bash下: () {} [] [[]] (())的解释
  9. 盘点计算机世界那些经典谣言
  10. linux配ipv6 ipv4 双栈,RouterOS配置原生IPv6(电信IPv4/IPv6双栈)
  11. Android酷欧天气实训报告书,建筑实训报告范文共6篇(10页)-原创力文档
  12. dubbo与zookeeper
  13. 多线程Socket传送文件的客户端和服务端源代码
  14. 用vue做一个app
  15. 一文彻底搞懂Mybatis系列(二)之mybatis事务管理机制深度剖析
  16. 进行网络广告策划时需要遵循哪些原则呢?
  17. 《MySQL DBA修炼之道》——2.2 官方版本的安装
  18. 宽带拨号上网显示服务器失效,拨号上网失败 宽带连接错误651怎么办
  19. 2023软考高项-你必须知道的6件事(脱水版)【附超好用的记忆法】
  20. 【技术方案】野外场景中的摄像头没有固定IP,如何联网实现视频监控需求?

热门文章

  1. 1天玩遍颐和园和少林寺
  2. word使用计算机,计算机一级Word的功能和使用
  3. python数据分析的app_Python数据分析与数据可视化知到APP答案
  4. change和onchange的区别
  5. 有哪些epub转txt方法?快把这些转换方法收藏起来吧
  6. JSON解析(详细)
  7. 蜂鸟入职考试35题答案_饿了么(蜂鸟配送)
  8. 《配置办公室共享打印机,型号HP LaserJet 1020》
  9. 2021年电工(高级)最新解析及电工(高级)新版试题
  10. 标准BP算法详细解析