Класс QSignalTransition
Класс QSignalTransition предоставляет переход, основанный на сигнале Qt. Подробнее...
| Заголовок: | #include <QSignalTransition> |
| qmake: | QT += core |
| С момента: | Qt 4.6 |
| Наследует: | QAbstractTransition |
Этот класс был представлен в Qt 4.6.
Свойства
- senderObject : QObject*
- signal : QByteArray
Открытые функции
| QSignalTransition(const QObject *sender, PointerToMemberFunction signal, QState *sourceState = nullptr) | |
| QSignalTransition(const QObject *sender, const char *signal, QState *sourceState = nullptr) | |
| QSignalTransition(QState *sourceState = nullptr) | |
| virtual | ~QSignalTransition() |
| 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 |
Подробное описание
Обычно вы будете использовать перегрузку QState::addTransition(), которая принимает отправителя и сигнал в качестве аргументов, а не создаете объекты QSignalTransition напрямую. QSignalTransition является частью фреймворка управления состоянием.
Вы можете подклассировать 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); Документация по свойствам
senderObject : QObject*
Это свойство содержит объект-отправитель, с которым связан этот переход по сигналу.
Функции доступа:
| QObject * | senderObject() const |
| void | setSenderObject(const QObject *sender) |
Сигнал-уведомление:
| void | senderObjectChanged() | [см. примечание ниже] |
Примечание: Это частный сигнал. Он может использоваться в соединениях сигналов, но не может испускаться пользователем.
signal : QByteArray
Это свойство содержит сигнал, с которым связан этот переход по сигналу.
Функции доступа:
| QByteArray | signal() const |
| void | setSignal(const QByteArray &signal) |
Сигнал-уведомление:
| void | signalChanged() | [см. примечание ниже] |
Примечание: Это частный сигнал. Он может использоваться в соединениях сигналов, но не может испускаться пользователем.
Документация по функциям-членам
шаблон <typename PointerToMemberFunction> QSignalTransition::QSignalTransition(const QObject *sender, PointerToMemberFunction signal, QState *sourceState = nullptr)
Это перегруженная функция.
Создает новый переход по сигналу, связанный с заданным сигналом заданного объекта sender и с заданным sourceState. Этот конструктор активен, если компилятор поддерживает делегирование конструкторов, как указано наличием макроса Q_COMPILER_DELEGATING_CONSTRUCTORS.
Эта функция была представлена в Qt 5.7.
QSignalTransition::QSignalTransition(const QObject *sender, const char *signal, QState *sourceState = nullptr)
Создает новый переход по сигналу, связанный с заданным сигналом заданного sender и с заданным sourceState.
QSignalTransition::QSignalTransition(QState *sourceState = nullptr)
Создает новый переход по сигналу с заданным sourceState.
[signal] void QSignalTransition::senderObjectChanged()
Этот сигнал испускается при изменении свойства senderObject.
Примечание: Это частный сигнал. Он может использоваться в соединениях сигналов, но не может испускаться пользователем.
Примечание: Сигнал уведомления для свойства senderObject.
Эта функция была представлена в Qt 5.4.
См. также QSignalTransition::senderObject.
[signal] void QSignalTransition::signalChanged()
Этот сигнал испускается при изменении свойства сигнала.
Примечание: Это частный сигнал. Он может использоваться в соединениях сигналов, но не может испускаться пользователем.
Примечание: Сигнал уведомления для свойства signal.
Эта функция была представлена в Qt 5.4.
См. также QSignalTransition::signal.
[virtual] 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).
Стандартная реализация возвращает true если event является объектом QStateMachine::SignalEvent и отправитель и индекс сигнала события соответствуют этому переходу, и возвращает false в противном случае.
[override virtual protected] void QSignalTransition::onTransition(QEvent *event)
Переопределяет: QAbstractTransition::onTransition(QEvent *event).
QObject *QSignalTransition::senderObject() const
Возвращает объект-отправитель, связанный с этим переходом по сигналу.
Примечание: Функция-получатель для свойства senderObject.
См. также setSenderObject().
void QSignalTransition::setSenderObject(const QObject *sender)
Устанавливает объект sender, связанный с этим переходом сигнала.
Примечание: Функция-сеттер для свойства senderObject.
См. также senderObject().
void QSignalTransition::setSignal(const QByteArray &signal)
Устанавливает сигнал, связанный с этим переходом сигнала.
Примечание: Функция-сеттер для свойства signal.
См. также signal().
QByteArray QSignalTransition::signal() const
Возвращает сигнал, связанный с этим переходом сигнала.
Примечание: Функция-геттер для свойства signal.
См. также setSignal().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.15/qsignaltransition.html