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