Qt:Документация 4.3.2/stylesheet
Материал из Wiki.crossplatform.ru
Root (Обсуждение | вклад) м («Qt:4.3.2/stylesheet» переименована в «Qt:Документация 4.3.2/stylesheet») |
Root (Обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
{{Qt4.3.2_header}} | {{Qt4.3.2_header}} | ||
- | [Далее: [[Qt: | + | |
+ | [Далее: [[Qt:Документация 4.3.2/stylesheet-syntax | Синтаксис таблиц стилей]] ] | ||
=Таблицы стилей Qt<br />= | =Таблицы стилей Qt<br />= | ||
- | Таблицы стилей Qt мощный механизм, который позволяет настраивать вид виджетов, в дополнение к тому, что уже является возможным с помощью [[Qt: | + | <div id="style-sheet"></div><div id="stylesheet"></div> |
+ | Таблицы стилей Qt мощный механизм, который позволяет настраивать вид виджетов, в дополнение к тому, что уже является возможным с помощью [[Qt:Документация 4.3.2/qstyle | QStyle]]. Концепция, терминология и синтаксис таблиц стилей Qt сделаны по аналогии с HTML [http://www.w3.org/Style/CSS/ Cascading Style Sheets (CSS)], но адаптированы к миру виджетов. | ||
Темы: | Темы: | ||
+ | |||
*[[#overview | Краткий обзор]] | *[[#overview | Краткий обзор]] | ||
**[[#overview | Краткий обзор]] | **[[#overview | Краткий обзор]] | ||
- | *[[Qt: | + | *[[Qt:Документация 4.3.2/stylesheet-syntax | Синтаксис таблицы стилей]] |
- | **[[Qt: | + | **[[Qt:Документация 4.3.2/stylesheet-syntax#style-rules | Правила стилей]] |
- | **[[Qt: | + | **[[Qt:Документация 4.3.2/stylesheet-syntax#selector-types | Селектор типов]] |
- | **[[Qt: | + | **[[Qt:Документация 4.3.2/stylesheet-syntax#sub-controls | Sub-Controls]] |
- | **[[Qt: | + | **[[Qt:Документация 4.3.2/stylesheet-syntax#pseudo-states | Псевдосостояния]] |
- | **[[Qt: | + | **[[Qt:Документация 4.3.2/stylesheet-syntax#conflict-resolution | Решения конфликтов]] |
- | **[[Qt: | + | **[[Qt:Документация 4.3.2/stylesheet-syntax#cascading | Cascading]] |
- | **[[Qt: | + | **[[Qt:Документация 4.3.2/stylesheet-syntax#inheritance | Наследование]] |
- | **[[Qt: | + | **[[Qt:Документация 4.3.2/stylesheet-syntax#widgets-inside-c-namespaces | Виджеты внутри C++ пространств имен]] |
- | **[[Qt: | + | **[[Qt:Документация 4.3.2/stylesheet-syntax#setting-qobject-properties | Настройка свойств QObject]] |
- | *[[Qt: | + | *[[Qt:Документация 4.3.2/stylesheet-designer | Интеграция Qt Designer]] |
- | *[[Qt: | + | *[[Qt:Документация 4.3.2/stylesheet-customizing | Настройка Qt виджетов используя таблицы стилей]] |
- | **[[Qt: | + | **[[Qt:Документация 4.3.2/stylesheet-customizing#the-box-model | Модель 'коробки'(The Box Model)]] |
- | **[[Qt: | + | **[[Qt:Документация 4.3.2/stylesheet-customizing#sub-controls | Sub-controls]] |
- | *[[Qt: | + | *[[Qt:Документация 4.3.2/stylesheet-reference | Qt Style Sheets Reference]] |
- | **[[Qt: | + | **[[Qt:Документация 4.3.2/stylesheet-reference#list-of-stylable-widgets | Список стилизованных виджетов]] |
- | **[[Qt: | + | **[[Qt:Документация 4.3.2/stylesheet-reference#list-of-properties | Список свойств]] |
- | **[[Qt: | + | **[[Qt:Документация 4.3.2/stylesheet-reference#list-of-property-types | Список типов свойств]] |
- | **[[Qt: | + | **[[Qt:Документация 4.3.2/stylesheet-reference#list-of-pseudo-states | Список псевдосостояний]] |
- | **[[Qt: | + | **[[Qt:Документация 4.3.2/stylesheet-reference#list-of-sub-controls | Список Sub-Controls]] |
- | *[[Qt: | + | *[[Qt:Документация 4.3.2/stylesheet-examples | Примеры таблиц стилей Qt]] |
- | **[[Qt: | + | **[[Qt:Документация 4.3.2/stylesheet-examples#style-sheet-usage | Использование таблиц стилей]] |
- | ***[[Qt: | + | ***[[Qt:Документация 4.3.2/stylesheet-examples#customizing-the-foreground-and-background-colors | Настройка Foreground и Background цветов]] |
- | ***[[Qt: | + | ***[[Qt:Документация 4.3.2/stylesheet-examples#customizing-a-qpushbutton-using-the-box-model | Настройка QPushButton используя модель 'коробки'(Box Model)]] |
- | ***[[Qt: | + | ***[[Qt:Документация 4.3.2/stylesheet-examples#customizing-the-qpushbutton-s-menu-indicator-sub-control | Настройка меню QPushButton'ов]] |
- | ***[[Qt: | + | ***[[Qt:Документация 4.3.2/stylesheet-examples#complex-selector-example | Complex Selector Example]] |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
+ | **[[Qt:Документация 4.3.2/stylesheet-examples#customizing-specific-widgets | Настройка особых виджетов]] | ||
+ | ***[[Qt:Документация 4.3.2/stylesheet-examples#customizing-qabstractscrollarea | Настройка QAbstractScrollArea]] | ||
+ | ***[[Qt:Документация 4.3.2/stylesheet-examples#customizing-qcheckbox | Настройка QCheckBox]] | ||
+ | ***[[Qt:Документация 4.3.2/stylesheet-examples#customizing-qcombobox | Настройка QComboBox]] | ||
+ | ***[[Qt:Документация 4.3.2/stylesheet-examples#customizing-qspinbox | Настройка QSpinBox]] | ||
+ | ***[[Qt:Документация 4.3.2/stylesheet-examples#customizing-qframe | Настройка QFrame]] | ||
+ | ***[[Qt:Документация 4.3.2/stylesheet-examples#customizing-qgroupbox | Настройка QGroupBox]] | ||
+ | ***[[Qt:Документация 4.3.2/stylesheet-examples#customizing-qheaderview | Настройка QHeaderView]] | ||
+ | ***[[Qt:Документация 4.3.2/stylesheet-examples#customizing-qlineedit | Настройка QLineEdit]] | ||
+ | ***[[Qt:Документация 4.3.2/stylesheet-examples#customizing-qmenu | Настройка QMenu]] | ||
+ | ***[[Qt:Документация 4.3.2/stylesheet-examples#customizing-qmenubar | Настройка QMenuBar]] | ||
+ | ***[[Qt:Документация 4.3.2/stylesheet-examples#customizing-qprogressbar | Настройка QProgressBar]] | ||
+ | ***[[Qt:Документация 4.3.2/stylesheet-examples#customizing-qpushbutton | Настройка QPushButton]] | ||
+ | ***[[Qt:Документация 4.3.2/stylesheet-examples#customizing-qradiobutton | Настройка QRadioButton]] | ||
+ | ***[[Qt:Документация 4.3.2/stylesheet-examples#customizing-qscrollbar | Настройка QScrollBar]] | ||
+ | ***[[Qt:Документация 4.3.2/stylesheet-examples#customizing-qsizegrip | Настройка QSizeGrip]] | ||
+ | ***[[Qt:Документация 4.3.2/stylesheet-examples#customizing-qslider | Настройка QSlider]] | ||
+ | ***[[Qt:Документация 4.3.2/stylesheet-examples#customizing-qsplitter | Настройка QSplitter]] | ||
+ | ***[[Qt:Документация 4.3.2/stylesheet-examples#customizing-qstatusbar | Настройка QStatusBar]] | ||
+ | ***[[Qt:Документация 4.3.2/stylesheet-examples#customizing-qtabwidget-and-qtabbar | Настройка QTabWidget and QTabBar]] | ||
+ | ***[[Qt:Документация 4.3.2/stylesheet-examples#customizing-qtablewidget | Настройка QTableWidget]] | ||
+ | ***[[Qt:Документация 4.3.2/stylesheet-examples#customizing-qtoolbar | Настройка QToolBar]] | ||
+ | ***[[Qt:Документация 4.3.2/stylesheet-examples#customizing-qtoolbox | Настройка QToolBox]] | ||
+ | ***[[Qt:Документация 4.3.2/stylesheet-examples#customizing-qtoolbutton | Настройка QToolButton]] | ||
+ | ***[[Qt:Документация 4.3.2/stylesheet-examples#customizing-qtooltip | Настройка QToolTip]] | ||
+ | ***[[Qt:Документация 4.3.2/stylesheet-examples#customizing-qtreeview | Настройка QTreeView]] | ||
+ | <div id="overview"></div><div id="overview"></div> | ||
===Краткий обзор=== | ===Краткий обзор=== | ||
- | |||
- | Например, следующая таблица стилей определяет, что все [[Qt: | + | Текстовые спецификации таблицы стилей , могут быть установлены в приложении с помощью [[Qt:Документация 4.3.2/qapplication#styleSheet-prop | QApplication::setStyleSheet]] () или на определенном виджете (и на его дочерних) при помощи [[Qt:Документация 4.3.2/qwidget#styleSheet-prop | QWidget::setStyleSheet]] (). Если установлено несколько таблиц стилей на различных уровнях, Qt создает таблицу стилей из всех, которые установлены. |
+ | |||
+ | Например, следующая таблица стилей определяет, что все [[Qt:Документация 4.3.2/qlineedit | QLineEdit]] должны использовать желтый цвет как второстепенный, а все [[Qt:Документация 4.3.2/qcheckbox | QCheckBox ]] должны использовать красный как цвет текста: | ||
<source lang="cpp-qt"> QLineEdit { background: yellow } | <source lang="cpp-qt"> QLineEdit { background: yellow } | ||
QCheckBox { color: red }</source> | QCheckBox { color: red }</source> | ||
- | Для этого вида настройки, таблицы стилей намного мощнее чем [[Qt: | + | Для этого вида настройки, таблицы стилей намного мощнее чем [[Qt:Документация 4.3.2/qpalette | QPalette]]. Например, можно было бы установить [[Qt:Документация 4.3.2/qpalette#ColorRole-enum | QPalette::Button]] роль для [[Qt:Документация 4.3.2/qpushbutton | QPushButton]] для получения красной кнопки. Однако, это будет работать не для всех стилей потому, что авторы стилей ограничены принципами работы различных платформ и (на Windows XP и Mac OS X) их темами. |
- | Таблицы стилей позволяют выполнять все виды настроек, которые трудно или невозможно выполнить используя [[Qt: | + | Таблицы стилей позволяют выполнять все виды настроек, которые трудно или невозможно выполнить используя [[Qt:Документация 4.3.2/qpalette | QPalette]]. Если Вы хотите желтый фон для обязательных полей, красный текст для потенциально опасных кнопок, или необычный чекбокс, таблицы стилей помогут вам. |
- | Таблицы стилей накладываются поверх [[Qt: | + | Таблицы стилей накладываются поверх [[Qt:Документация 4.3.2/qstyle | стилей виджета]], а это значит, что ваши приложения будут выглядеть натурально для их платформ, но любые ограничения таблицы стилей будут учтены. В отличии от бесполезного QPalette, таблицы стилей гарантируют: Если для [[Qt:Документация 4.3.2/qpushbutton | QPushButton]] установлен красный цвет фона, можете быть уверены, что кнопка будет иметь красный фон во всех стилях, на всех платформах. [[Qt:Документация 4.3.2/designer-manual#qt-designer | Qt Designer]] обеспечивает интеграцию таблицы стилей, облегчая просмотр их эффектов в различных [[Qt:Документация 4.3.2/qstyle | стилях виджета]]. |
- | Кроме того, таблицы стилей могут быть использованы для обеспечения характерного вида вашего приложения, без использования [[Qt: | + | Кроме того, таблицы стилей могут быть использованы для обеспечения характерного вида вашего приложения, без использования [[Qt:Документация 4.3.2/qstyle | QStyle]]. Например, вы можете определить произвольные изображения для радио-кнопок и чекбоксов, чтобы заставить их выделиться. Используя эту технику, вы можете достигнуть легкости настройки того, для чего обычно требовался subclassing нескольких классов стиля, таких как определения [[Qt:Документация 4.3.2/qstyle#styleHint | подсказок стиля]]. Пример [[Qt:Документация 4.3.2/widgets-stylesheet | таблицы стилей]] изображенный ниже определяет две различные таблицы стилей, которые вы можете опробовать и изменить по желанию. |
{| align="center" cellpadding="2" cellspacing="1" border="0" | {| align="center" cellpadding="2" cellspacing="1" border="0" | ||
- | |- | + | |- valign="top" class="odd" | |
|[[Image:stylesheet-coffee-xp.png|center]] | |[[Image:stylesheet-coffee-xp.png|center]] | ||
|[[Image:stylesheet-pagefold.png|center]] | |[[Image:stylesheet-pagefold.png|center]] | ||
|} | |} | ||
- | Когда таблица стилей активна, вызов [[Qt: | + | Когда таблица стилей активна, вызов [[Qt:Документация 4.3.2/qwidget#style | QWidget::style]]() вернет [[Qt:Документация 4.3.2/qstyle | QStyle]], который является оберткой (wrapper) стиля "таблицы стилей", платформо независимый стиль. Обернутый стиль гарантирует, что любая актиная таблица стилей учитывается, а иначе бы операции рисования накладывались поверх нее, платформо зависимый стиль (например, [[Qt:Документация 4.3.2/qwindowsxpstyle | QWindowsXPStyle]]). |
- | '''Внимание:''' Таблицы стилей Qt пока не поддерживаются для [[Qt: | + | '''Внимание:''' Таблицы стилей Qt пока не поддерживаются для [[Qt:Документация 4.3.2/qmacstyle | QMacStyle]] (стиль по умолчанию для Mac OS X) и настройку [[Qt:Документация 4.3.2/qstyle | QStyle]] подклассов. Мы планируем вернуться к этому в одном из следующих выпусков. |
- | [Далее: [[Qt: | + | [Далее: [[Qt:Документация 4.3.2/stylesheet-syntax | Синтаксис таблиц стилей]] ] |
{{Qt4.3.2_footer}} | {{Qt4.3.2_footer}} | ||
- |
Текущая версия на 10:46, 6 ноября 2008
![]() | Внимание: Актуальная версия перевода документации находится здесь |
__NOTOC__
Главная · Все классы · Основные классы · Классы по группам · Модули · Функции |
[Далее: Синтаксис таблиц стилей ]
[править] Таблицы стилей Qt
Таблицы стилей Qt мощный механизм, который позволяет настраивать вид виджетов, в дополнение к тому, что уже является возможным с помощью QStyle. Концепция, терминология и синтаксис таблиц стилей Qt сделаны по аналогии с HTML Cascading Style Sheets (CSS), но адаптированы к миру виджетов.
Темы:
- Настройка особых виджетов
- Настройка QAbstractScrollArea
- Настройка QCheckBox
- Настройка QComboBox
- Настройка QSpinBox
- Настройка QFrame
- Настройка QGroupBox
- Настройка QHeaderView
- Настройка QLineEdit
- Настройка QMenu
- Настройка QMenuBar
- Настройка QProgressBar
- Настройка QPushButton
- Настройка QRadioButton
- Настройка QScrollBar
- Настройка QSizeGrip
- Настройка QSlider
- Настройка QSplitter
- Настройка QStatusBar
- Настройка QTabWidget and QTabBar
- Настройка QTableWidget
- Настройка QToolBar
- Настройка QToolBox
- Настройка QToolButton
- Настройка QToolTip
- Настройка QTreeView
- Настройка особых виджетов
[править] Краткий обзор
Текстовые спецификации таблицы стилей , могут быть установлены в приложении с помощью QApplication::setStyleSheet () или на определенном виджете (и на его дочерних) при помощи QWidget::setStyleSheet (). Если установлено несколько таблиц стилей на различных уровнях, Qt создает таблицу стилей из всех, которые установлены.
Например, следующая таблица стилей определяет, что все QLineEdit должны использовать желтый цвет как второстепенный, а все QCheckBox должны использовать красный как цвет текста:
QLineEdit { background: yellow } QCheckBox { color: red }
Для этого вида настройки, таблицы стилей намного мощнее чем QPalette. Например, можно было бы установить QPalette::Button роль для QPushButton для получения красной кнопки. Однако, это будет работать не для всех стилей потому, что авторы стилей ограничены принципами работы различных платформ и (на Windows XP и Mac OS X) их темами.
Таблицы стилей позволяют выполнять все виды настроек, которые трудно или невозможно выполнить используя QPalette. Если Вы хотите желтый фон для обязательных полей, красный текст для потенциально опасных кнопок, или необычный чекбокс, таблицы стилей помогут вам.
Таблицы стилей накладываются поверх стилей виджета, а это значит, что ваши приложения будут выглядеть натурально для их платформ, но любые ограничения таблицы стилей будут учтены. В отличии от бесполезного QPalette, таблицы стилей гарантируют: Если для QPushButton установлен красный цвет фона, можете быть уверены, что кнопка будет иметь красный фон во всех стилях, на всех платформах. Qt Designer обеспечивает интеграцию таблицы стилей, облегчая просмотр их эффектов в различных стилях виджета.
Кроме того, таблицы стилей могут быть использованы для обеспечения характерного вида вашего приложения, без использования QStyle. Например, вы можете определить произвольные изображения для радио-кнопок и чекбоксов, чтобы заставить их выделиться. Используя эту технику, вы можете достигнуть легкости настройки того, для чего обычно требовался subclassing нескольких классов стиля, таких как определения подсказок стиля. Пример таблицы стилей изображенный ниже определяет две различные таблицы стилей, которые вы можете опробовать и изменить по желанию.
![]() | ![]() |
Когда таблица стилей активна, вызов QWidget::style() вернет QStyle, который является оберткой (wrapper) стиля "таблицы стилей", платформо независимый стиль. Обернутый стиль гарантирует, что любая актиная таблица стилей учитывается, а иначе бы операции рисования накладывались поверх нее, платформо зависимый стиль (например, QWindowsXPStyle).
Внимание: Таблицы стилей Qt пока не поддерживаются для QMacStyle (стиль по умолчанию для Mac OS X) и настройку QStyle подклассов. Мы планируем вернуться к этому в одном из следующих выпусков.
[Далее: Синтаксис таблиц стилей ]
Copyright © 2007 Trolltech | Trademarks | Qt 4.3.2
|