Таблицы стилей QtТаблицы стилей Qt - мощный механизм, который позволяет настраивать внешний вид виджетов, в дополнение к тому, что уже доступен с помощью создания подклассов QStyle. Концепция, терминология и синтаксис таблиц стилей Qt в значительной части вдохновлены Каскадными таблицами стилей (Cascading Style Sheets, CSS) HTML, но адаптированы к миру виджетов. Темы:
Краткий обзорТаблицы стилей - текстовые спецификации, которые могут быть установлены для всего приложения с помощью QApplication::setStyleSheet() или для определенного виджета (и его потомков) посредством QWidget::setStyleSheet(). Если на различных уровнях установлено несколько таблиц стилей, то Qt порождает эффективную таблицу стилей изо всех установленных таблиц стилей. Это называется каскадированием. Например, следующая таблица стилей определяет, что все объекты QLineEdit должны использовать в качестве фона желтый цвет, а все объекты QCheckBox должны использовать красный как цвет текста: QLineEdit { background: yellow } QCheckBox { color: red } Для такого вида настройки таблицы стилей намного мощнее, чем QPalette. Например, можно было бы установить роль QPalette::Button для QPushButton с целью получения кнопки красного цвета. Однако это будет работать не для всех стилей, потому что авторы стилей ограничены принципами работы различных платформ и (на Windows XP и Mac OS X) механизмами тем. Таблицы стилей позволяют осуществлять все виды настроек, которые трудно или невозможно выполнить, используя только QPalette. Если вы хотите получить желтый фон для обязательных полей, текст красного цвета для потенциально опасных кнопок или необычный флажок, то таблицы стилей помогут вам. Таблицы стилей применяются поверх текущего стиля виджетов, а это значит, что ваши приложения будут выглядеть настолько естественно, насколько это возможно, но любые ограничения таблицы стилей будут учтены. В отличие от бесполезной палитры, таблицы стилей гарантируют: Если вы установили красный цвет фона для QPushButton, вы можете быть уверены, что фон кнопок будет красным во всех стилях, на всех платформах. Кроме того, Qt Designer обеспечивает интеграцию таблиц стилей, облегчая просмотр эффекта от их использования при различных стилях виджета. Помимо этого, таблицы стилей могут быть использованы для обеспечения характерного вида и поведения вашего приложения без использования подклассов QStyle. Например, вы можете определить произвольные изображения для радиокнопок и флажков, чтобы выделить их. Используя эту технику, вы можете также делать незначительные изменения, которые в обычном случае потребовали бы применения наследования для нескольких классов стилей, подобно подсказкам стилей (style hint). Изображенный ниже пример Таблицы стилей определяет две различные таблицы стилей, которые вы можете опробовать и изменить по желанию.
Когда таблица стилей активна, вызов QStyle вернёт QWidget::style(), который является обёрткой (wrapper) стиля "таблицы стилей", а не платформо-зависимый стиль. Обёртка стилей гарантирует, что любая активная таблица стилей учитывается, а другие операции рисования накладываются поверх неё, определяя платформо-зависимый стиль (например, QWindowsXPStyle в Windows XP). Начиная с Qt 4.5, таблицы стилей Qt полностью поддерживают Mac OS X. Предупреждение: Таблицы стилей Qt в настоящее время не поддерживаются для пользовательских подклассов QStyle. Мы планируем вернуться к этому в одном из следующих релизов. |
Попытка перевода Qt документации. Если есть желание присоединиться, или если есть замечания или пожелания, то заходите на форум: Перевод Qt документации на русский язык... Люди внесшие вклад в перевод: Команда переводчиков |