QEventTransition Class
QEventTransition 类为 Qt 事件提供了一种专用于QObject 的过渡效果。更多内容...
| 头文件: | #include <QEventTransition> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS StateMachine) target_link_libraries(mytarget PRIVATE Qt6::StateMachine) |
| qmake: | QT += statemachine |
| 继承自: | QAbstractTransition |
| 继承自: |
属性
- eventSource : QObject*
- eventType : QEvent::Type
公共函数
| QEventTransition(QState *sourceState = nullptr) | |
| QEventTransition(QObject *object, QEvent::Type type, QState *sourceState = nullptr) | |
| virtual | ~QEventTransition() |
| QBindable<QObject *> | bindableEventSource() |
| QBindable<QEvent::Type> | bindableEventType() |
| QObject * | eventSource() const |
| QEvent::Type | eventType() const |
| void | setEventSource(QObject *object) |
| void | setEventType(QEvent::Type type) |
重新实现的受保护函数
| virtual bool | event(QEvent *e) override |
| virtual bool | eventTest(QEvent *event) override |
| virtual void | onTransition(QEvent *event) override |
详细说明
QEventTransition对象将一个事件与特定的QObject 绑定。QEventTransition是Qt State Machine 框架的一部分。
示例:
QPushButton *button = ...;
QState *s1 = ...;
QState *s2 = ...;
// If in s1 and the button receives an Enter event, transition to s2
QEventTransition *enterTransition = new QEventTransition(button, QEvent::Enter);
enterTransition->setTargetState(s2);
s1->addTransition(enterTransition);
// If in s2 and the button receives an Exit event, transition back to s1
QEventTransition *leaveTransition = new QEventTransition(button, QEvent::Leave);
leaveTransition->setTargetState(s1);
s2->addTransition(leaveTransition);子类化
在重写eventTest()函数时,应首先调用基类实现,以验证该事件是否为针对正确对象和事件类型的QStateMachine::WrappedEvent 。随后,可将事件强制转换为QStateMachine::WrappedEvent ,通过调用QStateMachine::WrappedEvent::event()获取原始事件,并针对该对象执行额外检查。
另请参阅 QState::addTransition()。
属性文档
[bindable] eventSource : QObject*
注意:此 属性支持QProperty 绑定。
该属性保存了与该事件过渡相关的事件源
访问函数:
| QObject * | eventSource() const |
| void | setEventSource(QObject *object) |
[bindable] eventType : QEvent::Type
注意:此 属性支持QProperty 绑定。
该属性存储此事件过渡所关联的事件类型
访问函数:
| QEvent::Type | eventType() const |
| void | setEventType(QEvent::Type type) |
成员函数文档
QEventTransition::QEventTransition(QState *sourceState = nullptr)
使用给定的sourceState 创建一个新的QEventTransition对象。
QEventTransition::QEventTransition(QObject *object, QEvent::Type type, QState *sourceState = nullptr)
创建一个新的 QEventTransition 对象,该对象与给定type 的事件相关联,用于给定的object ,并关联给定的sourceState 。
[virtual noexcept] QEventTransition::~QEventTransition()
删除此QObject 事件过渡效果。
[override virtual protected] bool QEventTransition::event(QEvent *e)
重写了:QAbstractTransition::event(QEvent *e)。
QObject *QEventTransition::eventSource() const
返回与该事件过渡相关的事件源。
注意: 这是 eventSource 属性的获取 函数。
另请参阅 setEventSource()。
[override virtual protected] bool QEventTransition::eventTest(QEvent *event)
重写了:QAbstractTransition::eventTest(QEvent *event)。
QEvent::Type QEventTransition::eventType() const
返回与该事件过渡关联的事件类型。
注意: 这是 eventType 属性的获取 函数。
另请参阅 setEventType()。
[override virtual protected] void QEventTransition::onTransition(QEvent *event)
重写了:QAbstractTransition::onTransition(QEvent *event)。
void QEventTransition::setEventSource(QObject *object)
将与该事件过渡关联的事件源设置为给定的object 。
注意: 这是属性eventSource 的设置 函数。
另请参阅 eventSource()。
void QEventTransition::setEventType(QEvent::Type type)
设置与该事件过渡关联的type 事件。
注意: 这是属性eventType 的设置 函数。
另请参阅 eventType()。
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.