The QEvent 类是所有事件类的基类。事件对象包含事件参数。 更多...
| 头: | #include <QEvent> |
| 继承者: | QAccessibleEvent , QActionEvent , QChildEvent , QCloseEvent , QCustomEvent , QDragLeaveEvent , QDropEvent , QDynamicPropertyChangeEvent , QFileOpenEvent , QFocusEvent , QGestureEvent , QGraphicsSceneEvent , QHelpEvent , QHideEvent , QHoverEvent , QIconDragEvent , QInputEvent , QInputMethodEvent , QMoveEvent , QPaintEvent , QResizeEvent , QShortcutEvent , QShowEvent , QStateMachine::SignalEvent , QStateMachine::WrappedEvent , QStatusTipEvent , QTimerEvent , QWhatsThisClickedEvent ,和 QWindowStateChangeEvent |
| enum | Type { None, AccessibilityDescription, AccessibilityHelp, AccessibilityPrepare, ..., MaxUser } |
| QEvent (Type type ) | |
| virtual | ~QEvent () |
| void | accept () |
| void | ignore () |
| bool | isAccepted () const |
| void | setAccepted (bool accepted ) |
| bool | spontaneous () const |
| 类型 | type () const |
| int | registerEventType (int hint = -1) |
The QEvent 类是所有事件类的基类。事件对象包含事件参数。
Qt 的主事件循环 ( QCoreApplication::exec ()) 从事件队列抓取本机窗口系统事件,将它们转换成 QEvent,并将翻译事件发送给 QObject 。
一般而言,事件来自底层窗口系统 ( spontaneous () returns true), but it is also possible to manually send events using QCoreApplication::sendEvent () 和 QCoreApplication::postEvent () ( spontaneous () returns false).
QObjects 接收事件通过让其 QObject::event () 函数被调用。函数可以在子类中被重实现,以定制事件处理并添加额外事件类型; QWidget::event () 是显著范例。默认情况下,事件被分派给事件处理程序像 QObject::timerEvent () 和 QWidget::mouseMoveEvent (). QObject::installEventFilter () 允许对象拦截另一对象的预定事件。
基本 QEvent 仅包含事件类型参数和 accept 标志。接受标志设置采用 accept (),而清零采用 ignore ()。它是默认设置,但不依赖于此,因为子类可能在其构造函数中选择清零它。
子类化的 QEvent 包含特定事件的额外描述参数。
另请参阅 QObject::event (), QObject::installEventFilter (), QWidget::event (), QCoreApplication::sendEvent (), QCoreApplication::postEvent (),和 QCoreApplication::processEvents ().
此枚举类型定义 Qt 中的有效事件类型。事件类型和用于每个类型的专用类如下:
| 常量 | 值 | 描述 |
|---|---|---|
QEvent::None
|
0
|
不是事件。 |
QEvent::AccessibilityDescription
|
130
|
Used to query accessibility description texts ( QAccessibleEvent ). |
QEvent::AccessibilityHelp
|
119
|
Used to query accessibility help texts ( QAccessibleEvent ). |
QEvent::AccessibilityPrepare
|
86
|
Accessibility information is requested. |
QEvent::ActionAdded
|
114
|
新的动作已被添加 ( QActionEvent ). |
QEvent::ActionChanged
|
113
|
动作已被改变 ( QActionEvent ). |
QEvent::ActionRemoved
|
115
|
动作已被移除 ( QActionEvent ). |
QEvent::ActivationChange
|
99
|
Widget 的顶层窗口激活状态已更改。 |
QEvent::ApplicationActivate
|
121
|
The application has been made available to the user. |
QEvent::ApplicationActivated
|
ApplicationActivate
|
This enum has been deprecated. Use ApplicationActivate instead. |
QEvent::ApplicationDeactivate
|
122
|
The application has been suspended, and is unavailable to the user. |
QEvent::ApplicationFontChange
|
36
|
默认应用程序字体已改变。 |
QEvent::ApplicationLayoutDirectionChange
|
37
|
默认的应用程序布局方向已改变。 |
QEvent::ApplicationPaletteChange
|
38
|
默认的应用程序调色板已改变。 |
QEvent::ApplicationWindowIconChange
|
35
|
应用程序的图标已改变。 |
QEvent::ChildAdded
|
68
|
对象获得子级 ( QChildEvent ). |
QEvent::ChildInserted
|
70
|
对象获得子级 ( QChildEvent ). Qt3Support only, use ChildAdded instead. |
QEvent::ChildPolished
|
69
|
Widget 子级被抛光 ( QChildEvent ). |
QEvent::ChildRemoved
|
71
|
对象失去子级 ( QChildEvent ). |
QEvent::Clipboard
|
40
|
The clipboard contents have changed (QClipboardEvent). |
QEvent::Close
|
19
|
Widget 被关闭 ( QCloseEvent ). |
QEvent::CloseSoftwareInputPanel
|
200
|
Widget 想要关闭 SIP (软件输入面板)。 |
QEvent::ContentsRectChange
|
178
|
Widget 的内容矩形改变边距。 |
QEvent::ContextMenu
|
82
|
上下文弹出菜单 ( QContextMenuEvent ). |
QEvent::CursorChange
|
183
|
Widget 的光标已改变。 |
QEvent::DeferredDelete
|
52
|
The object will be deleted after it has cleaned up. |
QEvent::DragEnter
|
60
|
光标进入 Widget 在拖放操作期间 ( QDragEnterEvent ). |
QEvent::DragLeave
|
62
|
光标离开 Widget 在拖放操作期间 ( QDragLeaveEvent ). |
QEvent::DragMove
|
61
|
拖放操作正在进行中 ( QDragMoveEvent ). |
QEvent::Drop
|
63
|
拖放操作完成 ( QDropEvent ). |
QEvent::EnabledChange
|
98
|
Widget 的启用状态已改变。 |
QEvent::Enter
|
10
|
Mouse enters widget's boundaries. |
QEvent::EnterEditFocus
|
150
|
编辑器 Widget 获得编辑聚焦。 |
QEvent::EnterWhatsThisMode
|
124
|
发送给顶层 Widget,当应用程序进入 What's This? 模式时。 |
QEvent::FileOpen
|
116
|
文件打开请求 ( QFileOpenEvent ). |
QEvent::FocusIn
|
8
|
Widget gains keyboard focus ( QFocusEvent ). |
QEvent::FocusOut
|
9
|
Widget loses keyboard focus ( QFocusEvent ). |
QEvent::FontChange
|
97
|
Widget 字体已改变。 |
QEvent::GrabKeyboard
|
188
|
项获得键盘抓取 ( QGraphicsItem 仅)。 |
QEvent::GrabMouse
|
186
|
项获得鼠标抓取 ( QGraphicsItem 仅)。 |
QEvent::GraphicsSceneContextMenu
|
159
|
图形场景之上的上下文弹出菜单 ( QGraphicsSceneContextMenuEvent ). |
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
|
Widget 被移除 ( QGraphicsSceneMoveEvent ). |
QEvent::GraphicsSceneResize
|
181
|
Widget 被重置尺寸 ( QGraphicsSceneResizeEvent ). |
QEvent::GraphicsSceneWheel
|
168
|
鼠标滚轮在图形场景中卷动 ( QGraphicsSceneWheelEvent ). |
QEvent::Hide
|
18
|
Widget 被隐藏 ( QHideEvent ). |
QEvent::HideToParent
|
27
|
子级 Widget 已隐藏。 |
QEvent::HoverEnter
|
127
|
鼠标光标进入悬停 Widget ( QHoverEvent ). |
QEvent::HoverLeave
|
128
|
鼠标光标离开悬停 Widget ( QHoverEvent ). |
QEvent::HoverMove
|
129
|
鼠标光标在悬停 Widget 内移动 ( QHoverEvent ). |
QEvent::IconDrag
|
96
|
窗口的主图标已被拖走 ( QIconDragEvent ). |
QEvent::IconTextChange
|
101
|
Widget's icon text has been changed. |
QEvent::InputMethod
|
83
|
正在使用输入法 ( QInputMethodEvent ). |
QEvent::KeyPress
|
6
|
键按下 ( QKeyEvent ). |
QEvent::KeyRelease
|
7
|
键释放 ( QKeyEvent ). |
QEvent::LanguageChange
|
89
|
应用程序翻译已改变。 |
QEvent::LayoutDirectionChange
|
90
|
布局的方向已改变。 |
QEvent::LayoutRequest
|
76
|
Widget 布局需要重做。 |
QEvent::Leave
|
11
|
鼠标离开 Widget 边界。 |
QEvent::LeaveEditFocus
|
151
|
An editor widget loses focus for editing. |
QEvent::LeaveWhatsThisMode
|
125
|
发送给顶层 Widget,当应用程序离开 What's This? 模式时。 |
QEvent::LocaleChange
|
88
|
系统区域设置已改变。 |
QEvent::NonClientAreaMouseButtonDblClick
|
176
|
A mouse double click occurred outside the client area. |
QEvent::NonClientAreaMouseButtonPress
|
174
|
A mouse button press occurred outside the client area. |
QEvent::NonClientAreaMouseButtonRelease
|
175
|
A mouse button release occurred outside the client area. |
QEvent::NonClientAreaMouseMove
|
173
|
A mouse move occurred outside the client area. |
QEvent::MacSizeChange
|
177
|
The user changed his widget sizes (Mac OS X only). |
QEvent::MenubarUpdated
|
153
|
The window's menu bar has been updated. |
QEvent::MetaCall
|
43
|
异步方法的援引凭借 QMetaObject::invokeMethod (). |
QEvent::ModifiedChange
|
102
|
Widget 修改状态已改变。 |
QEvent::MouseButtonDblClick
|
4
|
再次按下鼠标 ( QMouseEvent ). |
QEvent::MouseButtonPress
|
2
|
鼠标按下 ( QMouseEvent ). |
QEvent::MouseButtonRelease
|
3
|
鼠标释放 ( QMouseEvent ). |
QEvent::MouseMove
|
5
|
鼠标移动 ( QMouseEvent ). |
QEvent::MouseTrackingChange
|
109
|
鼠标追踪状态已改变。 |
QEvent::Move
|
13
|
Widget 位置改变 ( QMoveEvent ). |
QEvent::Paint
|
12
|
必要的屏幕更新 ( QPaintEvent ). |
QEvent::PaletteChange
|
39
|
Widget 调色板改变。 |
QEvent::ParentAboutToChange
|
131
|
Widget 父级即将改变。 |
QEvent::ParentChange
|
21
|
Widget 父级已改变。 |
QEvent::PlatformPanel
|
212
|
已请求特定平台面板。 |
QEvent::Polish
|
75
|
Widget 被抛光。 |
QEvent::PolishRequest
|
74
|
Widget 应该被抛光。 |
QEvent::QueryWhatsThis
|
123
|
Widget 应该接受事件,若它拥有 What's This? 帮助。 |
QEvent::RequestSoftwareInputPanel
|
199
|
Widget 想要打开 SIP (软件输入面板)。 |
QEvent::Resize
|
14
|
Widget 大小改变 ( QResizeEvent ). |
QEvent::Shortcut
|
117
|
处理快捷键子级按键 ( QShortcutEvent ). |
QEvent::ShortcutOverride
|
51
|
在子级中按下键,为覆写快捷键处理 ( QKeyEvent ). |
QEvent::Show
|
17
|
Widget 被展示在屏幕上 ( QShowEvent ). |
QEvent::ShowToParent
|
26
|
子级 Widget 已展示。 |
QEvent::SockAct
|
50
|
套接字被激活,用于实现 QSocketNotifier . |
QEvent::StateMachineSignal
|
192
|
交付给状态机的信号 ( QStateMachine::SignalEvent ). |
QEvent::StateMachineWrapped
|
193
|
事件是包裹器,即:包含另一事件 ( QStateMachine::WrappedEvent ). |
QEvent::StatusTip
|
112
|
请求状态提示 ( QStatusTipEvent ). |
QEvent::StyleChange
|
100
|
Widget 的样式已改变。 |
QEvent::TabletMove
|
87
|
Wacom 数位板移动 ( QTabletEvent ). |
QEvent::TabletPress
|
92
|
Wacom 数位板按下 ( QTabletEvent ). |
QEvent::TabletRelease
|
93
|
Wacom 数位板释放 ( QTabletEvent ). |
QEvent::OkRequest
|
94
|
Ok button in decoration pressed. Supported only for Windows CE. |
QEvent::TabletEnterProximity
|
171
|
Wacom 数位板进入接近事件 ( QTabletEvent ),发送给 QApplication . |
QEvent::TabletLeaveProximity
|
172
|
Wacom 数位板离开接近事件 ( QTabletEvent ),发送给 QApplication . |
QEvent::Timer
|
1
|
常规计时器事件 ( QTimerEvent ). |
QEvent::ToolBarChange
|
120
|
The toolbar button is toggled on Mac OS X. |
QEvent::ToolTip
|
110
|
请求工具提示 ( QHelpEvent ). |
QEvent::ToolTipChange
|
184
|
Widget 工具提示已改变。 |
QEvent::UngrabKeyboard
|
189
|
项丢失键盘抓取 ( QGraphicsItem 仅)。 |
QEvent::UngrabMouse
|
187
|
项丢失鼠标抓取 ( QGraphicsItem 仅)。 |
QEvent::UpdateLater
|
78
|
应队列 Widget 以稍后重新描绘它。 |
QEvent::UpdateRequest
|
77
|
Widget 应被重新描绘。 |
QEvent::WhatsThis
|
111
|
小部件应展现 What's This? 帮助 ( QHelpEvent ). |
QEvent::WhatsThisClicked
|
118
|
小部件 What's This? 帮助中的链接被点击。 |
QEvent::Wheel
|
31
|
鼠标滚轮卷动 ( QWheelEvent ). |
QEvent::WinEventAct
|
132
|
发生特定窗口激活事件。 |
QEvent::WindowActivate
|
24
|
窗口被激活。 |
QEvent::WindowBlocked
|
103
|
窗口被模态对话框阻塞。 |
QEvent::WindowDeactivate
|
25
|
窗口被取消激活。 |
QEvent::WindowIconChange
|
34
|
窗口的图标已改变。 |
QEvent::WindowStateChange
|
105
|
The 窗口状态 (最小化、最大化或全屏) 已改变 ( QWindowStateChangeEvent ). |
QEvent::WindowTitleChange
|
33
|
窗口标题已改变。 |
QEvent::WindowUnblocked
|
104
|
窗口被解除阻塞在退出模态对话框后。 |
QEvent::ZOrderChange
|
126
|
小部件的 Z 次序已改变。从不将此事件发送给顶层窗口。 |
QEvent::KeyboardLayoutChange
|
169
|
键盘布局已改变。 |
QEvent::DynamicPropertyChange
|
170
|
A dynamic property was added, changed or removed from the object. |
QEvent::TouchBegin
|
194
|
Beginning of a sequence of touch-screen and/or track-pad events ( QTouchEvent ) |
QEvent::TouchUpdate
|
195
|
触摸屏事件 ( QTouchEvent ) |
QEvent::TouchEnd
|
196
|
触摸事件序列结束 ( QTouchEvent ) |
QEvent::WinIdChange
|
203
|
The window system identifer for this native widget has changed |
QEvent::Gesture
|
198
|
手势被触发 ( QGestureEvent ) |
QEvent::GestureOverride
|
202
|
手势覆写被触发 ( QGestureEvent ) |
用户事件应拥有的值介于
User
and
MaxUser
:
| 常量 | 值 | 描述 |
|---|---|---|
QEvent::User
|
1000
|
用户定义事件。 |
QEvent::MaxUser
|
65535
|
上次用户事件 ID。 |
为方便起见,可以使用 registerEventType () 函数为应用程序注册并预留自定义事件类型。这样做允许避免意外重用已在应用程序其它地方使用的自定义事件类型。
事件对象的接受标志
设置接受参数指示事件接收器想要事件。不想要事件可能被传播给父级 Widget。默认情况下,isAccepted() 被设为 true,但不依赖此,因为子类可能选择在其构造函数中清零它。
为方便起见,还可以设置接受标志采用 accept (),而清零采用 ignore ().
访问函数:
| bool | isAccepted () const |
| void | setAccepted (bool accepted ) |
构造事件对象为类型 type .
[虚拟]
QEvent::
~QEvent
()
销毁事件。若它被 posted ,它将被移除 (从要被张贴的事件列表)。
设置事件对象的接受标志,相当于调用 setAccepted (true)。
设置接受参数指示事件接收器想要事件。不想要事件可能被传播给父级 Widget。
另请参阅 ignore ().
清零事件对象的接受标志参数,相当于调用 setAccepted (false).
清零接受参数指示事件接收器不想要事件。不想要事件被传播给父级 Widget。
另请参阅 accept ().
[static]
int
QEvent::
registerEventType
(
int
hint
= -1)
注册并返回自定义事件类型。 hint 提供将被使用若可用,否则返回值介于 QEvent::User and QEvent::MaxUser 尚未被注册。 hint 被忽略若其值不介于 QEvent::User and QEvent::MaxUser .
注意: 此函数是 thread-safe .
该函数在 Qt 4.4 引入。
Returns true if the event originated outside the application (a system event); otherwise returns false.
此函数的返回值未定义,对于描绘事件。
返回事件类型。