QSignalTransition Class
QSignalTransition クラスは Qt シグナルに基づくトランジションを提供します。詳細...
ヘッダー | #include <QSignalTransition> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS StateMachine) target_link_libraries(mytarget PRIVATE Qt6::StateMachine) |
qmake: | QT += statemachine |
継承: | QAbstractTransition |
プロパティ
- senderObject : const QObject*
- signal : QByteArray
パブリック機能
QSignalTransition(QState *sourceState = nullptr) | |
QSignalTransition(const QObject *sender, const char *signal, QState *sourceState = nullptr) | |
QSignalTransition(const QObject *sender, PointerToMemberFunction signal, QState *sourceState = nullptr) | |
virtual | ~QSignalTransition() |
QBindable<const QObject *> | bindableSenderObject() |
QBindable<QByteArray> | bindableSignal() |
const QObject * | senderObject() const |
void | setSenderObject(const QObject *sender) |
void | setSignal(const QByteArray &signal) |
QByteArray | signal() const |
シグナル
void | senderObjectChanged() |
void | signalChanged() |
再実装された保護された関数
virtual bool | event(QEvent *e) override |
virtual bool | eventTest(QEvent *event) override |
virtual void | onTransition(QEvent *event) override |
詳細説明
通常、QSignalTransitionオブジェクトを直接作成するのではなく、送信者とシグナルを引数に取るQState::addTransition ()のオーバーロードを使用します。QSignalTransition はQt State Machine Framework の一部です。
QSignalTransitionをサブクラス化し、eventTest()を再実装することで、シグナル遷移を条件付きにすることができます。eventTest()に渡されるイベント・オブジェクトは、QStateMachine::SignalEvent オブジェクトになります。例
class CheckedTransition : public QSignalTransition { public: CheckedTransition(QCheckBox *check) : QSignalTransition(check, SIGNAL(stateChanged(int))) {} protected: bool eventTest(QEvent *e) { if (!QSignalTransition::eventTest(e)) return false; QStateMachine::SignalEvent *se = static_cast<QStateMachine::SignalEvent*>(e); return (se->arguments().at(0).toInt() == Qt::Checked); } }; ... QCheckBox *check = new QCheckBox(); check->setTristate(true); QState *s1 = new QState(); QState *s2 = new QState(); CheckedTransition *t1 = new CheckedTransition(check); t1->setTargetState(s2); s1->addTransition(t1);
プロパティ・ドキュメンテーション
[bindable]
senderObject : const QObject*
注意: このプロパティはQProperty バインディングをサポートしています。
このプロパティは、このシグナル遷移が関連付けられている送信者オブジェクトを保持します。
[bindable]
signal : QByteArray
注: このプロパティはQProperty バインディングをサポートしています。
このプロパティは、このシグナル遷移が関連するシグナルを保持する。
メンバー関数ドキュメント
QSignalTransition::QSignalTransition(QState *sourceState = nullptr)
与えられたsourceState で新しいシグナル遷移を構築する。
QSignalTransition::QSignalTransition(const QObject *sender, const char *signal, QState *sourceState = nullptr)
与えられたsender の与えられたsignal と、与えられたsourceState に関連する新しい信号遷移を構築する。
template <typename PointerToMemberFunction> QSignalTransition::QSignalTransition(const QObject *sender, PointerToMemberFunction signal, QState *sourceState = nullptr)
これはオーバーロードされた関数である。
与えられたsender オブジェクトの与えられたsignal と、与えられたsourceState に関連付けられた新しいシグナル遷移を構築します。このコンストラクタは、マクロ Q_COMPILER_DELEGATING_CONSTRUCTORS の存在によって示されるように、コンパイラが委譲コンストラクタをサポートしている場合に有効になります。
[virtual noexcept]
QSignalTransition::~QSignalTransition()
この信号遷移を破壊する。
[override virtual protected]
bool QSignalTransition::event(QEvent *e)
再インプリメント:QAbstractTransition::event(QEvent *e).
[override virtual protected]
bool QSignalTransition::eventTest(QEvent *event)
再実装:QAbstractTransition::eventTest(QEvent *event)。
デフォルトの実装では、event がQStateMachine::SignalEvent オブジェクトで、イベントの送信者とシグナルインデックスがこの遷移と一致する場合はtrue
を返し、そうでない場合はfalse
を返します。
[override virtual protected]
void QSignalTransition::onTransition(QEvent *event)
再実装:QAbstractTransition::onTransition(QEvent *event)。
const QObject *QSignalTransition::senderObject() const
このシグナル遷移に関連付けられた送信者オブジェクトを返します。
注意: プロパティ senderObject のゲッター関数です。
setSenderObject()も参照してください 。
[private signal]
void QSignalTransition::senderObjectChanged()
このシグナルは、senderObject プロパティが変更されたときに発行される。
注意: これはプライベートシグナルです。シグナル接続で使用することはできますが、ユーザーが発することはできません。
注: senderObject プロパティのノーティファイアシグナル。
QSignalTransition::senderObjectも参照 。
void QSignalTransition::setSenderObject(const QObject *sender)
このシグナル遷移に関連付けられたsender オブジェクトを設定する。
注: プロパティsenderObject のセッター関数。
senderObject()も参照 。
void QSignalTransition::setSignal(const QByteArray &signal)
この信号遷移に関連するsignal を設定する。
注: プロパティsignal のセッター関数。
signal()も参照 。
QByteArray QSignalTransition::signal() const
このシグナル遷移に関連付けられたシグナルを返す。
備考: プロパティシグナルのゲッター関数。
setSignal()も参照してください 。
[private signal]
void QSignalTransition::signalChanged()
このシグナルは、シグナルプロパティが変更されたときに発信される。
注意: これはプライベート・シグナルです。シグナル接続で使用することはできますが、ユーザーが発することはできません。
注: signal プロパティのノーティファイアシグナル。
© 2025 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.