Описание класса 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().
Авторские права © 2010 Nokia Corporation и/или её дочерние компании | Торговые марки | Qt 4.6.4 |
Попытка перевода Qt документации. Если есть желание присоединиться, или если есть замечания или пожелания, то заходите на форум: Перевод Qt документации на русский язык... Люди внесшие вклад в перевод: Команда переводчиков |