На этом шаге рассмотрим управление состояниями элементов.
Помимо подэлементов, можно указывать состояния (табл. 1). При этом определение применяется к виджету только в том случае, если он находится в определенном (указанном) состоянии. Например, следующее правило будет применяться в том случае, если указатель мыши будет находиться над кнопкой:
QPushButton:hover {color: red}
| Активировано | |
| Виджет находится в закрытом либо свернутом состоянии | |
| Виджет недоступен | |
| Виджет доступен | |
| Виджет находится в фокусе ввода | |
| Указатель мыши находится над виджетом | |
| Кнопка находится в промежуточном неопределенном состоянии | |
| Выключено (для виджетов, которые могут быть в фиксированном состоянии нажато/не нажато) | |
| Включено (для виджетов, которые могут быть в фиксированном состоянии нажато/не нажато) | |
| Виджет находится в открытом или развернутом состоянии | |
| Виджет был нажат мышью | |
| Деактивировано |
Состояния можно объединять. Следующий пример говорит о том, что правило должно применяться тогда, когда указатель мыши располагается поверх виджета, находящегося в активированном состоянии:
QCheckBox:hover:checked {color: white}Если необходимо сделать так, чтобы правило срабатывало в тех случаях, когда виджет находится в одном из нескольких состояний, то можно поступить следующим образом:
QCheckBox:hover, QCheckBox:checked {color: white}Также можно применять правило, когда состояние не имеет места:
QCheckBox:!hover {color: white} На следующем шаге рассмотрим пример реализации каскадного стиля элемента управления.