QAbstractTransition Class
QAbstractTransition クラスは、QAbstractState オブジェクト間の遷移の基底クラスです。詳細...
| ヘッダー: | #include <QAbstractTransition> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS StateMachine) target_link_libraries(mytarget PRIVATE Qt6::StateMachine) |
| qmake: | QT += statemachine |
| 継承元: | QObject |
| 継承元: |
パブリック型
| enum | TransitionType { ExternalTransition, InternalTransition } |
プロパティ
- sourceState : QState*
- targetState : QAbstractState*
- targetStates : QList<QAbstractState*>
- transitionType : TransitionType
パブリック関数
| QAbstractTransition(QState *sourceState = nullptr) | |
| virtual | ~QAbstractTransition() |
| void | addAnimation(QAbstractAnimation *animation) |
| QList<QAbstractAnimation *> | animations() const |
| QBindable<QAbstractTransition::TransitionType> | bindableTransitionType() |
| QStateMachine * | machine() const |
| void | removeAnimation(QAbstractAnimation *animation) |
| void | setTargetState(QAbstractState *target) |
| void | setTargetStates(const QList<QAbstractState *> &targets) |
| void | setTransitionType(QAbstractTransition::TransitionType type) |
| QState * | sourceState() const |
| QAbstractState * | targetState() const |
| QList<QAbstractState *> | targetStates() const |
| QAbstractTransition::TransitionType | transitionType() const |
シグナル
| void | targetStateChanged() |
| void | targetStatesChanged() |
| void | triggered() |
保護関数
| virtual bool | eventTest(QEvent *event) = 0 |
| virtual void | onTransition(QEvent *event) = 0 |
再実装された保護関数
| virtual bool | event(QEvent *e) override |
詳細な説明
QAbstractTransitionクラスは、QStateMachine の状態(QAbstractState オブジェクト)間の遷移を表す抽象基底クラスです。QAbstractTransitionは、Qt State Machine フレームワークの一部です。
sourceState() 関数は、遷移の起点(ソース)を返します。targetStates() 関数は、遷移の遷移先(ターゲット)を返します。machine() 関数は、その遷移が属するステートマシンを返します。
triggered() シグナルは、遷移がトリガーされたときに発火します。
遷移によってアニメーションが再生されることがあります。遷移にアニメーションを追加するには、addAnimation() 関数を使用します。
サブクラス化
eventTest() 関数は、イベントが遷移をトリガーすべきかどうかを判断するために、ステートマシンによって呼び出されます。再実装では、通常、イベントの種類を確認し、イベントオブジェクトを適切な型にキャストした上で、イベントの 1 つ以上のプロパティが条件を満たしているかどうかを確認します。
onTransition() 関数は、遷移がトリガーされた際に呼び出されます。この関数を再実装して、遷移に対するカスタム処理を実行してください。
メンバ型のドキュメント
enum QAbstractTransition::TransitionType
この列挙型は、遷移の種類を指定します。デフォルトでは、この型は外部遷移です。
| 定数 | 値 | 説明 |
|---|---|---|
QAbstractTransition::ExternalTransition | 0 | 遷移の起点状態(ターゲットのない遷移を除く)である状態はすべて離脱され、必要に応じて再進入されます。 |
QAbstractTransition::InternalTransition | 1 | 遷移のターゲット状態が複合状態のサブ状態であり、かつその複合状態がソース状態である場合、内部遷移ではソース状態を離れることはありません。 |
「QAbstractTransition::transitionType」も参照してください 。
プロパティのドキュメント
[read-only] sourceState : QState*
このプロパティは、この遷移のソース状態(親)を保持します
アクセス関数:
| QState * | sourceState() const |
targetState : QAbstractState*
このプロパティには、この遷移の遷移先状態が格納されます
遷移に遷移先の状態がない場合でも、その遷移はトリガーされる可能性がありますが、これによりステートマシンの構成が変更されることはありません(つまり、現在の状態から抜け出したり、再びその状態に入ったりすることはありません)。
アクセス関数:
| QAbstractState * | targetState() const |
| void | setTargetState(QAbstractState *target) |
通知シグナル:
| void | targetStateChanged() | [see note below] |
注:これは プライベートシグナルです。シグナル接続では使用できますが、ユーザーが発火させることはできません。
targetStates : QList<QAbstractState*>
このプロパティには、この遷移の遷出先状態が格納されます
複数の状態が指定されている場合、それらはすべて同じ並列グループ状態の子孫でなければなりません。
アクセス関数:
| QList<QAbstractState *> | targetStates() const |
| void | setTargetStates(const QList<QAbstractState *> &targets) |
通知信号:
| void | targetStatesChanged() | [see note below] |
注:これは プライベート信号です。信号接続で使用することはできますが、ユーザーが発信することはできません。
[bindable] transitionType : TransitionType
注:この プロパティは、QProperty バインディングに対応しています。
この遷移が内部遷移であるか、外部遷移であるかを示します。
内部遷移と外部遷移の挙動は同じですが、ソース状態が複合状態であり、ターゲットがソースの子孫である遷移の場合は例外です。そのような場合、内部遷移はソース状態を離れて再びその状態に戻ることはありませんが、外部遷移はそうします。
デフォルトでは、タイプは外部遷移になります。
アクセス関数:
| QAbstractTransition::TransitionType | transitionType() const |
| void | setTransitionType(QAbstractTransition::TransitionType type) |
メンバ関数のドキュメント
QAbstractTransition::QAbstractTransition(QState *sourceState = nullptr)
指定されたsourceState を用いて、新しいQAbstractTransitionオブジェクトを生成します。
[virtual noexcept] QAbstractTransition::~QAbstractTransition()
この遷移を破棄します。
void QAbstractTransition::addAnimation(QAbstractAnimation *animation)
指定されたanimation をこのトランジションに追加します。このトランジションは、そのアニメーションの所有権を取得することはありません。
removeAnimation() およびanimations()も参照してください 。
QList<QAbstractAnimation *> QAbstractTransition::animations() const
このトランジションに関連付けられているアニメーションのリストを返します。アニメーションがない場合は、空のリストを返します。
addAnimation()も参照してください 。
[override virtual protected] bool QAbstractTransition::event(QEvent *e)
QObject::event(QEvent *e) を再実装します。
[pure virtual protected] bool QAbstractTransition::eventTest(QEvent *event)
この関数は、指定されたevent によってこの遷移をトリガーすべきかどうかを判断するために呼び出されます。この関数を再実装し、イベントによって遷移をトリガーすべき場合はtrueを、そうでない場合はfalseを返してください。
QStateMachine *QAbstractTransition::machine() const
この遷移が属するステートマシンを返します。遷移がどのステートマシンにも属していない場合は、nullptr を返します。
[pure virtual protected] void QAbstractTransition::onTransition(QEvent *event)
この関数は、遷移がトリガーされたときに呼び出されます。引数として渡されるevent は、遷移のトリガーとなったものです。遷移がトリガーされた際に独自の処理を実行するには、この関数を再実装してください。
void QAbstractTransition::removeAnimation(QAbstractAnimation *animation)
指定されたanimation をこの遷移から削除します。
addAnimation()も参照してください 。
void QAbstractTransition::setTargetState(QAbstractState *target)
この遷移のtarget の状態を設定します。
注: プロパティ `targetState`のセッター 関数です。
targetState()も参照してください 。
void QAbstractTransition::setTargetStates(const QList<QAbstractState *> &targets)
この遷移のターゲット状態を、指定されたtargets に設定します。
注: プロパティ `targetStates`のセッター 関数です。
targetStates()も参照してください 。
void QAbstractTransition::setTransitionType(QAbstractTransition::TransitionType type)
遷移のタイプを「type 」に設定します。
注: プロパティ `transitionType`のセッター 関数です。
transitionType()も参照してください 。
QState *QAbstractTransition::sourceState() const
この遷移のソース状態を返します。この遷移にソース状態がない場合は、nullptr を返します。
注: プロパティ sourceStateのゲッター関数です 。
QAbstractState *QAbstractTransition::targetState() const
この遷移の遷移先状態を返します。遷移先にない場合は、nullptr を返します。
注: プロパティ `targetState`のゲッター関数です 。
関連項目: setTargetState()。
[private signal] void QAbstractTransition::targetStateChanged()
このシグナルは、targetState プロパティが変更されたときに発せられます。
注:これは プライベートシグナルです。シグナル接続で使用することはできますが、ユーザーが発行することはできません。
注: プロパティ `targetState`の通知 シグナルです。
「QAbstractTransition::targetState」も参照してください 。
QList<QAbstractState *> QAbstractTransition::targetStates() const
この遷移の遷出先状態を返します。この遷移に遷出先状態がない場合は、空のリストを返します。
注: プロパティ `targetStates`のゲッター 関数です。
関連項目: setTargetStates()。
[private signal] void QAbstractTransition::targetStatesChanged()
このシグナルは、targetStates プロパティが変更されたときに発火します。
注:これは プライベートシグナルです。シグナル接続で使用することはできますが、ユーザーが発行することはできません。
注: プロパティ `targetStates` に対する通知 シグナルです。
「QAbstractTransition::targetStates」も参照してください 。
QAbstractTransition::TransitionType QAbstractTransition::transitionType() const
遷移の型を返します。
注: プロパティ transitionTypeのゲッター 関数です。
関連項目: setTransitionType()。
[private signal] void QAbstractTransition::triggered()
このシグナルは、遷移がトリガーされたとき(onTransition() が呼び出された後)に発信されます。
注:これは プライベートシグナルです。シグナル接続では使用できますが、ユーザーが発行することはできません。
© 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.