QSignalTransition Class
QSignalTransition クラスは Qt シグナルに基づくトランジションを提供します。詳細...
Header: | #include <QSignalTransition> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS StateMachine) target_link_libraries(mytarget PRIVATE Qt6::StateMachine) |
qmake: | QT += statemachine |
Inherits: | 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
このシグナル遷移に関連付けられたシグナルを返す。
メモ: プロパティ signal のゲッター関数。
setSignal()も参照 。
[private signal]
void QSignalTransition::signalChanged()
このシグナルは、シグナルのプロパティが変更されたときに発信されます。
注意 :これはプライベートシグナルです。シグナル接続で使用することはできますが、ユーザーが発することはできません。
注: signal プロパティのノーティファイア・シグナル。
QSignalTransition::signalも参照してください 。
©2024 The Qt Company Ltd. 本書に含まれるドキュメントの著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。