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

プロパティ

パブリック関数

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

このシグナル遷移に関連付けられたシグナルを返す。

メモ: プロパティ 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.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。