このページでは

QAbstractTransition Class

QAbstractTransition クラスは、QAbstractState オブジェクト間の遷移の基底クラスです。詳細...

ヘッダー: #include <QAbstractTransition>
CMake: find_package(Qt6 REQUIRED COMPONENTS StateMachine)
target_link_libraries(mytarget PRIVATE Qt6::StateMachine)
qmake: QT += statemachine
継承元: QObject
継承元:

QEventTransition およびQSignalTransition

パブリック型

enum TransitionType { ExternalTransition, InternalTransition }

プロパティ

パブリック関数

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

シグナル

保護関数

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::ExternalTransition0遷移の起点状態(ターゲットのない遷移を除く)である状態はすべて離脱され、必要に応じて再進入されます。
QAbstractTransition::InternalTransition1遷移のターゲット状態が複合状態のサブ状態であり、かつその複合状態がソース状態である場合、内部遷移ではソース状態を離れることはありません。

「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.