QSignalTransition Class
La clase QSignalTransition proporciona una transición basada en una señal Qt. Más...
| Cabecera: | #include <QSignalTransition> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS StateMachine)target_link_libraries(mytarget PRIVATE Qt6::StateMachine) |
| qmake: | QT += statemachine |
| Hereda: | QAbstractTransition |
Propiedades
- senderObject : const QObject*
- signal : QByteArray
Funciones públicas
| 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 |
Señales
| void | senderObjectChanged() |
| void | signalChanged() |
Funciones protegidas reimplementadas
| virtual bool | event(QEvent *e) override |
| virtual bool | eventTest(QEvent *event) override |
| virtual void | onTransition(QEvent *event) override |
Descripción detallada
Normalmente se utiliza la sobrecarga de QState::addTransition() que toma un emisor y una señal como argumentos, en lugar de crear objetos QSignalTransition directamente. QSignalTransition forma parte de Qt State Machine Framework.
Puedes subclasificar QSignalTransition y reimplementar eventTest() para hacer condicional una transición de señal; el objeto evento pasado a eventTest() será un objeto QStateMachine::SignalEvent. Ejemplo:
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);
Documentación de propiedades
[bindable] senderObject : const QObject*
Nota: Esta propiedad admite enlaces QProperty.
Esta propiedad contiene el objeto emisor al que está asociada esta transición de señal
Funciones de acceso:
| const QObject * | senderObject() const |
| void | setSenderObject(const QObject *sender) |
Señal notificadora:
| void | senderObjectChanged() | [see note below] |
Nota: Se trata de una señal privada. Puede utilizarse en conexiones de señal pero no puede ser emitida por el usuario.
[bindable] signal : QByteArray
Nota: Esta propiedad admite enlaces QProperty.
Esta propiedad contiene la señal a la que está asociada esta transición de señal
Funciones de acceso:
Señal de notificador:
| void | signalChanged() | [see note below] |
Nota: Se trata de una señal privada. Puede utilizarse en conexiones de señal pero no puede ser emitida por el usuario.
Documentación de las funciones miembro
QSignalTransition::QSignalTransition(QState *sourceState = nullptr)
Construye una nueva transición de señal con la dirección sourceState.
QSignalTransition::QSignalTransition(const QObject *sender, const char *signal, QState *sourceState = nullptr)
Construye una nueva transición de señal asociada con el signal dado del sender dado, y con el sourceState dado.
template <typename PointerToMemberFunction> QSignalTransition::QSignalTransition(const QObject *sender, PointerToMemberFunction signal, QState *sourceState = nullptr)
Construye una nueva transición de señal asociada con el signal dado del objeto sender dado y con el sourceState dado. Este constructor está habilitado si el compilador soporta constructores delegables, como indica la presencia de la macro Q_COMPILER_DELEGATING_CONSTRUCTORS.
Se trata de una función sobrecargada.
[virtual noexcept] QSignalTransition::~QSignalTransition()
Destruye esta transición de señal.
[override virtual protected] bool QSignalTransition::event(QEvent *e)
Reimplementa: QAbstractTransition::event(QEvent *e).
[override virtual protected] bool QSignalTransition::eventTest(QEvent *event)
Reimplementa: QAbstractTransition::eventTest(QEvent *event).
La implementación por defecto devuelve true si el event es un objeto QStateMachine::SignalEvent y el remitente del evento y el índice de señal coinciden con esta transición, y devuelve false en caso contrario.
[override virtual protected] void QSignalTransition::onTransition(QEvent *event)
Reimplementa: QAbstractTransition::onTransition(QEvent *event).
const QObject *QSignalTransition::senderObject() const
Devuelve el objeto emisor asociado a esta transición de señal.
Nota: Función Getter para la propiedad senderObject.
Véase también setSenderObject().
[private signal] void QSignalTransition::senderObjectChanged()
Esta señal se emite cuando se modifica la propiedad senderObject.
Nota: Se trata de una señal privada. Puede ser utilizada en conexiones de señales pero no puede ser emitida por el usuario.
Nota: Señal notificadora para la propiedad senderObject.
Véase también QSignalTransition::senderObject.
void QSignalTransition::setSenderObject(const QObject *sender)
Establece el objeto sender asociado a esta transición de señal.
Nota: Función Setter para la propiedad senderObject.
Véase también senderObject().
void QSignalTransition::setSignal(const QByteArray &signal)
Establece la propiedad signal asociada a esta transición de señal.
Nota: Función Setter para la propiedad signal.
Véase también signal().
QByteArray QSignalTransition::signal() const
Devuelve la señal asociada a esta transición de señal.
Nota: Función Getter para la propiedad signal.
Véase también setSignal().
[private signal] void QSignalTransition::signalChanged()
Esta señal se emite cuando se cambia la propiedad de la señal.
Nota: Se trata de una señal privada. Puede ser utilizada en conexiones de señal pero no puede ser emitida por el usuario.
Nota: Señal notificadora de la propiedad signal.
Véase también 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.