Все классы, производные от QAbstractScrollArea, включая QTextEdit и QAbstractItemView (все классы представлений элементов), поддерживают прокручиваемый фон используя свойство background-attachment. Установка свойства background-attachment в значение fixed обеспечивает фоновое изображение (background-image), не прокручиваемое в окне просмотра. При установке свойства background-attachment в значение scroll фоновое изображение прокручивается вместе с полосами прокрутки.
Поддерживает модель "коробки" (box model). Стиль к индикатору отметки можно применить используя субэлемент управления ::indicator. По умолчанию, индикатор располагается в верхнем левом углу прямоугольника содержимого виджета.
Свойство spacing задает интервал между индикатором отметки и текстом.
Стиль к элементу изменения размера можно применить используя свойство image. Применить стиль к индикаторам стрелок можно используя субэлементы управления ::left-arrow и ::right-arrow.
Стиль к рамке вокруг выпадающего списка можно применить, используя модель "коробки". Стиль к кнопке выпадающего списка можно применить используя субэлемент управления ::drop-down. По умолчанию, кнопка выпадающего списка расположена в верхнем правом углу прямоугольника заполнения виджета. Стиль к значку стрелки внутри кнопки выпадающего списка можно применить используя субэлемент управления ::down-arrow. По умолчанию, стрелка расположена по центру прямоугольника содержимого субэлемента управления выпадающего списка.
Когда виджет присоединен поддерживает стилевое оформление строки заголовка и кнопок строки заголовка.
Стиль к границе присоединяемого виджета можно применить используя свойство border. Субэлемент управления ::title может быть использован для настройки строки заголовка. Кнопки закрытия и отделения виджета располагаются относительно субэлемента управления ::title используя ::close-button и ::float-button соответственно.
Поддерживает модель "коробки" (box model). Стиль к заголовку можно применить используя субэлемент управления ::title. По умолчанию, расположение заголовка зависит от QGroupBox::textAlignment.
В случае QGroupBox, который можно отмечать, заголовок включает в себя индикатор отметки. Стиль к индикатору применяется используя субэлемент управления ::indicator. Свойство spacing может быть использовано для управления интервалом между текстом и индикатором.
Стиль к отдельным пунктам меню применяется используя субэлемент управления ::item. В дополнение к поддерживаемым в большинстве случаев псевдо-состояниям, субэлемент управления ::item поддерживает псевдо-состояния :selected, :default, :exclusive и :non-exclusive.
Стиль к индикатору отметки пунктов меню, которые можно отмечать, применяется используя субэлемент управления ::indicator.
Стиль к разделителю применяется используя субэлемент управления ::separator.
Для пунктов с подменю, стиль к значку стрелки применяется используя субэлементы управления right-arrow и left-arrow.
Стиль к скроллеру (scroller) применяется используя субэлемент управления ::scroller.
Стиль линии отрыва (tear-off) применяется используя субэлемент управления ::tearoff.
Поддерживает модель "коробки" (box model). Свойство spacing задает интервал между пунктами меню. Стиль к отдельным пунктам меню применяется используя субэлемент управления ::item.
Предупреждение: При запуске на Qt/Mac, панель меню обычно встраивается в системную панель меню. В этом случае таблица стилей не действует.
Поддерживает модель "коробки" (box model). Стиль к чанкам (chunks) индикатора выполнения можно применить используя субэлемент управления ::chunk. Чанк отображается в прямоугольнике содержимого виджета.
Если индикатор выполнения отображает текст, то для его расположения используйте свойство text-align.
У незавершенного индикатора выполнения установлено псевдо-состояние :indeterminate.
Для кнопки QPushButton с меню, стиль к индикатору меню применяется используя субэлемент управления ::menu-indicator. Внешний вид кнопок, которые можно отмечать, может быть настроен используя псевдо-состояния :open и :closed.
Предупреждение: Если вы установите на QPushButton только цвет фона (background-color), фон может не появиться до тех пор, пока вы не установите свойство border в то же самое значение. Это из-за того, что по умолчанию QPushButton отрисовывает "родную" границу, которая полностью перекрывает цвет фона. Например,
Поддерживает модель "коробки" (box model). Стиль к индикатору отметки можно применить используя субэлемент управления ::indicator. По умолчанию, индикатор располагается в верхнем левом углу прямоугольника содержимого виджета.
Свойство spacing задает интервал между индикатором отметки и текстом.
Поддерживает модель "коробки" (box model). Прямоугольник содержимого виджета рассматривается как бороздка по которой двигается ползунок. Размер QScrollBar (т.е. ширина или высота в зависимости от ориентации) устанавливается используя свойство width или height, соответственно. Чтобы определить ориентацию используйте псевдо-состояния :horizontal и :vertical.
Стиль к ползунку можно применить используя субэлемент управления ::handle. Установка свойства min-width или min-height обеспечивает ограничение размера ползунка в зависимости от ориентации.
Субэлемент управления ::add-line может быть использован для применения стиля к кнопке добавления линии (add a line). По умолчанию, субэлемент управления add-line расположен в верхнем правом углу прямоугольника границ виджета. В зависимости от ориентации - ::right-arrow или ::down-arrow. По умолчанию, стрелки расположены по центру прямоугольника содержимого субэлемента управления add-line.
Субэлемент управления ::sub-line может быть использован для применения стиля к кнопке вычитания лини (subtract a line). По умолчанию, субэлемент управления sub-line расположен в нижнем правом углу прямоугольника границ виджета. В зависимости от ориентации - ::left-arrow или ::up-arrow. По умолчанию, стрелки расположены по центру прямоугольника содержимого субэлемента управления sub-line.
Субэлемент управления ::sub-page может быть использован для применения стиля к области ползунка, которая вычитает страницу (subtracts a page). Субэлемент управления ::add-page может быть использован для применения стиля к области ползунка, которая добавляет страницу (adds a page).
Поддерживает модель "коробки" (box model). Для горизонтальных ползунков должны предоставляться свойства min-width и height. Для вертикальных ползунков должны предоставляться свойства min-height и width.
Стиль к бороздке ползунка применяется используя субэлемент управления ::groove. По умолчанию бороздка расположена в прямоугольнике содержимого виджета. Стиль к бегунку ползунка применяется используя субэлемент управления ::handle. Субэлемент управления перемещается в прямоугольнике содержимого субэлемента управления бороздки.
Стиль к рамке окошка счетчика может быть применен используя модель "коробки".
Стиль к верхней кнопке и верхней стрелке можно применить используя субэлементы управления ::up-button и ::up-arrow. По умолчанию, верхняя кнопка (up-button) расположена в верхнем правом углу прямоугольника заполнения виджета. Без явно заданных размеров она занимает половину высоты прямоугольника, к которому относится. Верхняя стрелка (up-arrow) расположена в центре прямоугольника содержимого верхней кнопки.
Стиль к нижней кнопке и нижней стрелке можно применить используя субэлементы управления ::down-button и ::down-arrow. По умолчанию, нижняя кнопка (down-button) расположена в нижнем правом углу прямоугольника заполнения виджета. Без явно заданных размеров она занимает половину высоты прямоугольника, к которому относится. Нижняя стрелка (bottom-arrow) расположена в центре прямоугольника содержимого нижней кнопки.
Перекрытие вкладок для выбранного состояния создается использованием отрицательных полей или абсолютной схемы размещения.
Стиль к индикатору разрыва QTabBar применяется используя субэлемент управления ::tear.
QTabBar использует две кнопки QToolButton для своих кнопок прокрутки (scrollers), стиль к которым можно применить используя селектор QTabBar QToolButton. Для указания ширины кнопки прокрутки используйте субэлемент управления ::scroller.
Стиль к выравниванию вкладок внутри QTabBar применяется используя свойство alignment.
Предупреждение:
Чтобы изменить размещение QTabBar внутри QTabWidget'а, используйте субэлемент управления tab-bar (и установите subcontrol-position).
Стиль к рамке виджета со вкладками применяется используя субэлемент управления ::pane. Стиль к левому и правому углам применяется используя ::left-corner и ::right-corner, соответственно. Расположение панели вкладок контролируется используя субэлемент управления ::tab-bar.
По умолчанию, субэлементы управления занимают место QTabWidget в QWindowsStyle. Чтобы разместить QTabBar по центру, установите свойство subcontrol-position субэлемента управления tab-bar.
Угловой виджет в QTableView реализован как QAbstractButton и к нему можно применить стиль используя селектор "QTableView QTableCornerButton::section".
Предупреждение: Если на QTableCornerButton вы установили только цвет фона, то фон может не появиться до тех пор, пока вы не установите свойство границы в такое же значение. Это из-за того, что по умолчанию, QTableCornerButton отрисовывает "родную" границу, которая полностью перекрывает цвет фона.
Цвет сетки может быть задан используя свойство gridline-color.
Если инструментальная кнопка QToolButton имеет меню, то для применения стиля к индикатору может использоваться субэлемент управления ::menu-indicator. По умолчанию, индикатор меню (menu-indicator) расположен в нижнем правом углу прямоугольника заполнения виджета.
Если QToolButton находится в режиме QToolButton::MenuButtonPopup, субэлемент управления ::menu-button используется для отрисовки кнопки меню. Субэлемент управления ::menu-arrow используется для отрисовки стрелки меню внутри кнопки меню (menu-button). По умолчанию, он расположен в центре прямоугольника содержимого субэлемента управления кнопки меню.
Предупреждение: Если вы установите на QToolButton только цвет фона, то фон может не появиться до тех пор, пока вы не установите свойство border в то же самое значение. Это из-за того, что по умолчанию QToolButton отрисовывает "родную" границу, которая полностью перекрывает цвет фона. Например,
Стиль к ветвям представления дерева можно применить используя субэлемент управления ::branch. Субэлемент управления ::branch поддерживает псевдо-состояния :open, :closed, :has-sibling и :has-children.
Используйте субэлемент управления ::item для более тонкого управления элементами в QTreeView.
Вышеприведенный код ничего не делает в случае отсутствия таблицы стилей.
Предупреждение: Убедитесь, что вы определили для своего виджета макрос Q_OBJECT.
Список свойств
В таблице ниже перечислены все свойства, поддерживаемые таблицами стилей Qt. Значения, которые могут быть присвоены свойствам, зависят от типа свойства. Если иное не указано явно, то свойства применимы ко всем виджетам. Отмеченные звездочкой * свойства специфичны для Qt и не имеют аналогов в CSS2 или CSS3.
Определяет, будет ли фоновое изображение background-image в QAbstractScrollArea прокручиваемым или фиксированным относительно окна просмотра. По умолчанию, фоновое изображение background-image прокручивается вместе с окном просмотра.
Сокращенное обозначение для установки нижней границы виджета. Эквивалентно указанию border-bottom-color, border-bottom-style и/или border-bottom-width.
Изображение, используемое для заливки границы. Изображение разбивается на девять частей и, если необходимо, растягивается подходящим образом. За подробностями обращайтесь к Border Image.
Если свойство position равно relative (по умолчанию), перемещает subcontrol на определенное смещение вверх; указание bottom: y эквивалентно указанию top: -y.
Если свойство position равно absolute, то свойство bottom указывает нижнюю кромку субэлемента управления относительно нижней кромки родителя (смотрите также subcontrol-origin).
Это свойство поддерживается всеми виджетами, которые связаны с QWidget::palette.
Если это свойство не установлено, значение по умолчанию равно тому, что установлено для QWidget::foregroundRole в палитре виджета (обычно - черный цвет).
Замечание: Стили, определившие это свойство, должны быть применены перед созданием QDialogButtonBox; это означает, что вы должны применить стиль к родительскому виджету или приложению.
Если это свойство не задано, то его значение по умолчанию равно значению, которое зависит от субэлемента управления/виджета и текущего стиля.
Предупреждение: Если иное не указано явно, то это свойство не действует при установке на виджеты. Если вы хотите зафиксировать ширину виджета, то присвойте свойствам min-height и max-height одинаковые значения.
Изображение, которое отрисовывается в прямоугольнике содержимого субэлемента управления.
Свойство image предоставляет доступ к списку Url'ов или рисунков svg. Текущее отрисовываемое изображение определяется используя такой же алгоритм, что и для QIcon (т.е.) мастштаб изображения никогда не увеличивается, но если нужно то масштаб уменьшается. Если svg задан, то изображение масштабируется до размеров прямоугольника содержимого.
Установка свойства image на субэлементы управления неявно устанавливает ширину и высоту субэлемента управления (за исключением изображений SVG).
В Qt версии 4.3 и позднее, выравнивание изображения внутри прямоугольника можно задавать используя свойство image-position.
Это свойство только для субэлементов управления--мы не поддерживаем их для других элементов.
Предупреждение: Подключаемый модуль SVG QIcon необходим для визуализации изображений SVG.
Если свойство position равно relative (по умолчанию), то перемещает субэлемент управления на определенное смещение вправо.
Если свойство position равно absolute, то свойство left указывает левую кромку субэлемента управления относительно левой кромки родителя (смотрите также subcontrol-origin).
Если это свойство не задано, то по умолчанию оно равно 0.
Прозрачность виджета. Возможные значения - от 0 (полностью прозрачный) до 255 (матовый). В настоящее время это свойство поддерживается только для всплывающих подсказок.
Если это свойство не задано, то его значение по умолчанию равно значению, указанному в подсказке стиля текущего стиля для SH_ToolTipLabel_Opacity.
Если свойство position равно relative (по умолчанию), то перемещает субэлемент управления на определенное смещение влево; указание right: x эквивалентно указанию left: -x.
Если свойство position равно absolute, то свойство right указывает правую кромку субэлемента управления относительно правой кромки родителя (смотрите также subcontrol-origin).
Если свойство position равно relative (по умолчанию), то перемещает субэлемент управления на определенное смещение вниз.
Если свойство position равно absolute, то свойство top указывает нижнюю кромку субэлемента управления относительно нижней кромки родителя (смотрите также subcontrol-origin)
Если это свойство не задано, то по умолчанию оно равно 0.
Если это свойство не задано, то его значение по умолчанию равно значению, которое зависит от субэлемента управления/виджета и текущего стиля.
Предупреждение: Если иное не указано явно, то это свойство не действует при установке на виджеты. Если вы хотите зафиксировать ширину виджета, то присвойте свойствам min-width и max-width одинаковые значения.
Используемые в Qt пиктограммы могут быть настроены, используя следующие свойства. Каждое из свойств, перечисленных в этом разделе, имеет тип Icon.
Обратите внимание на то, что для того чтобы пиктограммы отображались в кнопках в QDialogButtonBox, вы должны установить свойство dialogbuttonbox-buttons-have-icons равным true. Кроме того, для настройки размера пиктограмм используйте свойство icon-size.
Изображение границы (border image) - изображение, которое состоит из девяти частей (верхней левой, верхней центральной, верхней правой, центральной левой, центральной, центральной правой, нижней левой, нижней центральной, нижней правой). Когда требуется граница определенного размера, угловые части используются как есть, а верхняя, правая, нижняя и левая части растягиваются или повторяются чтобы создать границы требуемого размера.
От одного до четырех вхождений кисти Brush, задающих верхнюю, правую, нижнюю и левую кромку прямоугольника, соответственно. Если цвет левой кромки не задан, он берется таким же что и цвет правой кромки. Если цвет нижней кромки не задан, он берется таким же что и цвет верхней кромки. Если цвет правой кромки не задан, он берется таким же что и цвет верхней кромки.
Пример:
QLabel { border-color: red } /* красный красный красный красный */
QLabel { border-color: red blue } /* красный синий красный синий */
QLabel { border-color: red blue green } /* красный синий зеленый синий */
QLabel { border-color: red blue green yellow } /* красный синий зеленый желтый */
От одного до четырех вхождений Length, задающих верхнюю, правою, нижнюю и левую кромки прямоугольника, соответственно. Если длина левой кромки не задана, то она берется равной длине правой кромки. Если длина нижней кромки не задана, то она берется равной длине верхней кромки. Если длина правой кромки не задана, то она берется равной длине верхней кромки.
Задает либо цвет (Color), либо градиент (Gradient), либо компонент палитры (Palette).
Color
rgb(r, g, b) | rgba(r, g, b, a) | hsv(h, s, v) | hsva(h, s, v, a) | #rrggbb | Color Name
Задает цвет как значение цветовой модели RGB (red, green, blue) или RGBA (red, green, blue, alpha) или HSV (hue, saturation, value) или HSVA (hue, saturation, value, alpha) или именованный цвет (named color). Синтаксис rgb() или rgba() можно использовать вместе с целыми значениями от 0 до 255, или с процентными соотношениями. Значения s, v и a в hsv() или hsva() должны быть в диапазоне 0-255; значение h должно быть в диапазоне 0-359.
Задает градиентную заливку. Имеется три типа градиентной заливки:
Линейные градиенты интерполируют цвета от начальной до конечной точки.
Радиальные градиенты интерполируют цвета между фокусом и точками на окружности вокруг нее.
Конические градиенты интерполируют цвета вокруг центральной точки.
Градиенты указываются в режиме ограничивающего прямоугольника объекта (Object Bounding Mode). Представьте себе прямоугольник, в котором визуализируется градиент, верхний левый угол которого находится в (0, 0), а нижний правый угол - в (1, 1). Параметры градиента в этом случае указываются как доля между 0 и 1. Эти значения экстраполируются на реальные координаты прямоугольника во время выполнения. Возможно задание значений, которые лежат вне ограничивающего прямоугольника (например, -0.6 или 1.8).
Предупреждение: Ограничители появляются отсортированными по возрастанию.
Примеры:
/* линейный градиент от белого до зеленого */
QTextEdit {
background: qlineargradient(x1:0, y1:0, x2:1, y2:1,
stop:0 white, stop: 0.4 gray, stop:1 green)
}
/* линейный градиент от белого до зеленого */
QTextEdit {
background: qlineargradient(x1:0, y1:0, x2:1, y2:1,
stop:0 white, stop: 0.4 rgba(10, 20, 30, 40), stop:1 rgb(0, 200, 230, 200))
}
/* конический градиент от белого до зеленого */
QTextEdit {
background: qconicalgradient(cx:0.5, cy:0.5, angle:30,
stop:0 white, stop:1 #00FF00)
}
/* радиальный градиент от белого до зеленого */
QTextEdit {
background: qradialgradient(cx:0, cy:0, radius: 1,
fx:0.5, fy:0.5, stop:0 white, stop:1 green)
}
Icon
(Url (disabled | active | normal | selected)? (on | off)? )*
Число, за которым следует единица измерения. Стандарт CSS рекомендует, чтобы агенты пользователя игнорировали декларацию с недопустимыми значениями. В Qt указание единиц измерения является обязательным. Для совместимости с ранними версиями Qt, числа без указания единиц измерения трактуются как пиксели в большинстве контекстов. Поддерживаемые единицы измерения:
px: пиксели
pt: пункт (размер одной точки, т.е., 1/72 дюйма)
em: ширина буквы m шрифта (т.е., ширина 'M')
ex: высота буквы x шрифта (т.е., высота 'x')
Number
Целое десятичное число или вещественное число
Примеры: 0, 18, +127, -255, 12.34, -.5, 0009.
Origin
margin | border | padding | content
Показывает какой из четырех прямоугольников использовать.
margin: Прямоугольник полей. Поля располагаются за пределами границы.
border: Прямоугольник границ. Здесь рисуются все границы.
padding: Прямоугольник заполнения. В отличие от полей, заполнитель находится внутри границы.
content: Прямоугольник содержимого. Он указывает, где находится реальное содержимое, исключая заполнитель, границу или поля.
От одного до двух вхождений Length. Если задана только одна длина, то она используется как радиус четвертинки окружности, определяя угол. Если заданы две длины, то первая из них - горизонтальный радиус четвертинки эллипса, тогда как вторая - вертикальный радиус.
Repeat
repeat-x | repeat-y | repeat | no-repeat
Значение, указывающее тип повторения.
repeat-x: Повторять горизонтально.
repeat-y: Повторять вертикально.
repeat: Повторять горизонтально и вертикально.
no-repeat: Не повторять.
Url
url(filename)
filename - имя файла на локальном диске или хранимого в Системе ресурсов Qt. Установка изображения неявно установит ширину и высоту элемента.
Список псевдо-состояний
Поддерживаются следующие псевдо-состояния:
Псевдо-состояние
Описание
:active
Состояние установлено когда виджет находится в активном окне.
:adjoins-item
Это состояние установлено когда ветвь ::branch виджета QTreeView является смежной с элементом.
Панель вкладок в QTabWidget. Этот субэлемент управления существует только для управления позицией QTabBar внутри QTabWidget. Для применения стиля к вкладкам используйте субэлемент управления ::tab.