Описание класса QHistoryState
|
| enum | HistoryType { ShallowHistory, DeepHistory } |
| QHistoryState ( QState * parent = 0 ) | |
| QHistoryState ( HistoryType type, QState * parent = 0 ) | |
| ~QHistoryState () | |
| QAbstractState * | defaultState () const |
| HistoryType | historyType () const |
| void | setDefaultState ( QAbstractState * state ) |
| void | setHistoryType ( HistoryType type ) |
| virtual bool | event ( QEvent * e ) |
| virtual void | onEntry ( QEvent * event ) |
| virtual void | onExit ( QEvent * event ) |
Класс QtHistoryState предоставляет средство возврата в предыдущее активное подсостояние.
Историческое состояние - это псевдо-сотояние, которое представляет дочернее состояние, в котором родительское состояние находилось в последний раз, когда из него вышли. Переход, с историческим состоянием в качестве цели, фактически является переходом в один из других дочерних состояний родительского состояния. QHistoryState - часть Каркаса Конечного автомата.
Используйте функцию setDefaultState() для задания состояния, в которое следует перейти, если произошёл вход в родительское состояние. Пример:
QStateMachine machine; QState *s1 = new QState(); QState *s11 = new QState(s1); QState *s12 = new QState(s1); QHistoryState *s1h = new QHistoryState(s1); s1h->setDefaultState(s11); machine.addState(s1); QState *s2 = new QState(); machine.addState(s2); QPushButton *button = new QPushButton(); // Щелчок по кнопке заставит конечный автомат перейти в дочернее состояние, // в котором было s1 в момент выхода, или в историческое состояние // по умолчанию, если ни разу не было перехода в s1. s1->addTransition(button, SIGNAL(clicked()), s1h);
По умолчанию историческое состояние является неглубоким (QHistoryState::ShallowHistory), это означает, что оно не будет помнить вложенных состояний. Это может быть настроено с помощью свойства historyType.
Данное перечисление определяет тип истории, которую QHistoryState записывает.
| Константа | Значение | Описание |
|---|---|---|
| QHistoryState::ShallowHistory | 0 | Записываются только непосредственные дочерние состояния. В этом случае переход с историческим состоянием, в качестве цели, закончится в непосредственном дочернем состоянии, в котором родительское находилось в последний раз, когда из него вышли. Это значение по умолчанию. |
| QHistoryState::DeepHistory | 1 | Записываются вложенные состояния. В этом случае переход с историческим состоянием, в качестве цели, закончится в наиболее глубоко вложенном состоянии-потомке, в котором родительское находилось в последний раз, когда из него вышли. |
Это свойство содержит состояние по умолчанию этого конечного автомата.
Функции доступа:
| QAbstractState * | defaultState () const |
| void | setDefaultState ( QAbstractState * state ) |
Это свойство содержит тип истории, которую записывает историческое состояние.
Значение по умолчанию этого свойства - QHistoryState::ShallowHistory.
Функции доступа:
| HistoryType | historyType () const |
| void | setHistoryType ( HistoryType type ) |
Конструирует новое историческое состояние (небольшой глубины) с заданным родительским состоянием parent.
Создание нового исторического состояния заданного типа type с заданным родительским состоянием parent.
Уничтожает это историческое состояние.
Переопределено из QObject::event().
Переопределено из QAbstractState::onEntry().
Переопределено из QAbstractState::onExit().
| Copyright © 2010 Nokia Corporation and/or its subsidiary(-ies) | Торговые марки | Qt 4.6.4 |
|
Попытка перевода Qt документации. Если есть желание присоединиться, или если есть замечания или пожелания, то заходите на форум: Перевод Qt документации на русский язык... Люди внесшие вклад в перевод: Команда переводчиков |