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 フレームワークの一部です。
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 のバインディングをサポートしています。
このプロパティには、このシグナル遷移に関連付けられている送信者オブジェクトが格納されます。
アクセス関数:
| const QObject * | senderObject() const |
| void | setSenderObject(const QObject *sender) |
通知シグナル:
| void | senderObjectChanged() | [see note below] |
注:これは プライベートシグナルです。シグナル接続では使用できますが、ユーザーが発火することはできません。
[bindable] signal : QByteArray
注:この プロパティは、QProperty バインディングをサポートしています。
このプロパティは、このシグナルの遷移に関連付けられているシグナルを保持します。
アクセス関数:
通知用シグナル:
| void | signalChanged() | [see note below] |
注:これは プライベートシグナルです。シグナル接続では使用できますが、ユーザーが発行することはできません。
メンバ関数のドキュメント
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」も参照してください 。
© 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.