QSignalTransition Class

QSignalTransition クラスは Qt シグナルに基づくトランジションを提供します。詳細...

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

プロパティ

パブリック機能

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

シグナル

再実装された保護された関数

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)。

デフォルトの実装では、eventQStateMachine::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 プロパティのノーティファイアシグナル。

QSignalTransition::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.