Стиль Material
Стиль Material основан на руководствах Google Material Design. Подробнее...
| Заявление импорта: | import QtQuick.Controls.Material 2.2 |
| С момента: | Qt 5.7 |
Прикреплённые свойства
- accent : цвет
- background : цвет
- elevation : целое число
- foreground : цвет
- primary : цвет
- theme : перечисление
Прикреплённые методы
- цвет цвет(перечисление predefined, перечисление shade)
Подробное описание
Стиль Material основан на Руководствах Google Material Design. Он обеспечивает единый опыт работы на разных платформах и размерах устройств.
|
Стиль Material в светлой теме |
Стиль Material в тёмной теме |
Чтобы запустить приложение со стилем Material, см. Использование стилей в Qt Quick Controls 2.
Примечание: Стиль Material не является родным стилем Android. Стиль Material — это 100%-ное кроссплатформенное реализация стиля Qt Quick Controls 2, соответствующая руководствам Google Material Design. Стиль работает на любой платформе и выглядит более или менее одинаково во всех местах. Незначительные различия могут возникать из-за различий в доступных системных шрифтах и движках рендеринга шрифтов.
Настройка
Стиль Material позволяет настроить пять атрибутов: theme, primary, accent, foreground и background.
Все атрибуты могут быть заданы для любого окна или элемента, и они автоматически распространяются на дочерние элементы аналогично шрифтам. В следующем примере окно и все три радиокнопки отображаются в тёмной теме с фиолетовым цветом акцента:
import QtQuick 2.0
import QtQuick.Controls 2.1
import QtQuick.Controls.Material 2.1
ApplicationWindow {
visible: true
Material.theme: Material.Dark
Material.accent: Material.Purple
Column {
anchors.centerIn: parent
RadioButton { text: qsTr("Small") }
RadioButton { text: qsTr("Medium"); checked: true }
RadioButton { text: qsTr("Large") }
}
} |
Помимо указания атрибутов в QML, их также можно указать через переменные окружения или в файле конфигурации. Атрибуты, указанные в QML, имеют приоритет над всеми другими методами.
Файл конфигурации
| Переменная | Описание |
|---|---|
Theme |
Устанавливает значение по умолчанию для темы Material. Значение может быть одной из доступных тем, например "Dark". |
Accent |
Устанавливает значение по умолчанию для цвета акцента Material. Значение может быть любым цветом, но рекомендуется использовать один из предварительно определённых цветов Material, например "Teal". |
Primary |
Устанавливает значение по умолчанию для основного цвета Material. Значение может быть любым цветом, но рекомендуется использовать один из предварительно определённых цветов Material, например "BlueGrey". |
Foreground |
Устанавливает значение по умолчанию для цвета переднего плана Material. Значение может быть любым цветом или одним из предварительно определённых цветов Material, например "Brown". |
Background |
Устанавливает значение по умолчанию для цвета фона Material. Значение может быть любым цветом или одним из предварительно определённых цветов Material, например "Grey". |
См. Файл конфигурации Qt Quick Controls 2 для получения более подробной информации о файле конфигурации.
Переменные окружения
| Переменная | Описание |
|---|---|
QT_QUICK_CONTROLS_MATERIAL_THEME |
Устанавливает значение по умолчанию для темы Material. Значение может быть одной из доступных тем, например "Dark". |
QT_QUICK_CONTROLS_MATERIAL_ACCENT |
Устанавливает значение по умолчанию для цвета акцента Material. Значение может быть любым цветом, но рекомендуется использовать один из предварительно определённых цветов Material, например "Teal". |
QT_QUICK_CONTROLS_MATERIAL_PRIMARY |
Устанавливает значение по умолчанию для основного цвета Material. Значение может быть любым цветом, но рекомендуется использовать один из предварительно определённых цветов Material, например "BlueGrey". |
QT_QUICK_CONTROLS_MATERIAL_FOREGROUND |
Устанавливает значение по умолчанию для цвета переднего плана Material. Значение может быть любым цветом или одним из предварительно определённых цветов Material, например "Brown". |
QT_QUICK_CONTROLS_MATERIAL_BACKGROUND |
Устанавливает значение по умолчанию для цвета фона Material. Значение может быть любым цветом или одним из предварительно определённых цветов Material, например "Grey". |
См. Поддерживаемые переменные окружения в Qt Quick Controls 2 для получения полного списка поддерживаемых переменных окружения.
Зависимость
Стиль Material необходимо отдельно импортировать, чтобы получить доступ к атрибутам, специфичным для этого стиля. Следует отметить, что независимо от ссылок на стиль Material, код приложения работает с любым другим стилем. Атрибуты, специфичные для Material, действуют только при запуске приложения со стилем Material.
Если стиль Material импортирован в файл QML, который всегда загружается, стиль Material необходимо развернуть вместе с приложением, чтобы приложение могло работать независимо от того, с каким стилем оно запущено. Используя выбор файлов, можно применять настройки, специфичные для стиля, без создания жёсткой зависимости от стиля.
Предварительно определённые цвета Material
Хотя цвета primary и accent могут быть любыми цветами, рекомендуется использовать один из предварительно определённых цветов, которые хорошо сочетаются с остальной палитрой стиля Material:
Доступные предварительно определённые цвета:
| Константа | Описание |
|---|---|
Material.Red |
#F44336 |
Material.Pink |
#E91E63 (цвет акцента по умолчанию) |
Material.Purple |
#9C27B0 |
Material.DeepPurple |
#673AB7 |
Material.Indigo |
#3F51B5 (основной цвет по умолчанию) |
Material.Blue |
#2196F3 |
Material.LightBlue |
#03A9F4 |
Material.Cyan |
#00BCD4 |
Material.Teal |
#009688 |
Material.Green |
#4CAF50 |
Material.LightGreen |
#8BC34A |
Material.Lime |
#CDDC39 |
Material.Yellow |
#FFEB3B |
Material.Amber |
#FFC107 |
Material.Orange |
#FF9800 |
Material.DeepOrange |
#FF5722 |
Material.Brown |
#795548 |
Material.Grey |
#9E9E9E |
Material.BlueGrey |
#607D8B |
При использовании тёмной темы по умолчанию используются различные оттенки предварительно определённых цветов:
| Константа | Описание |
|---|---|
Material.Red |
#EF9A9A |
Material.Pink |
#F48FB1 (акцент по умолчанию) |
Material.Purple |
#CE93D8 |
Material.DeepPurple |
#B39DDB |
Material.Indigo |
#9FA8DA (основной цвет по умолчанию) |
Material.Blue |
#90CAF9 |
Material.LightBlue |
#81D4FA |
Material.Cyan |
#80DEEA |
Material.Teal |
#80CBC4 |
Material.Green |
#A5D6A7 |
Material.LightGreen |
#C5E1A5 |
Material.Lime |
#E6EE9C |
Material.Yellow |
#FFF59D |
Material.Amber |
#FFE082 |
Material.Orange |
#FFCC80 |
Material.DeepOrange |
#FFAB91 |
Material.Brown |
#BCAAA4 |
Material.Grey |
#EEEEEE |
Material.BlueGrey |
#B0BEC5 |
Предопределённые оттенки
Существует несколько различных оттенков каждого предопределённого цвета, которые могут быть переданы в функцию Material.color():
| Константа | Значение |
|---|---|
Material.Shade50 | |
Material.Shade100 | |
Material.Shade200 | |
Material.Shade300 | |
Material.Shade400 | |
Material.Shade500 | |
Material.Shade600 | |
Material.Shade700 | |
Material.Shade800 | |
Material.Shade900 | |
Material.ShadeA100 | |
Material.ShadeA200 | |
Material.ShadeA400 | |
Material.ShadeA700 |
См. также Стиль по умолчанию, Универсальный стиль
Документация по прикреплённым свойствам
Material.accent : цвет
Это прикреплённое свойство содержит цвет акцента темы. Свойство можно прикрепить к любому окну или элементу. Значение распространяется на дочерние элементы.
Значение по умолчанию — Material.Pink.
В следующем примере цвет акцента выделенной кнопки изменяется на Material.Orange:
Button {
text: qsTr("Button")
highlighted: true
Material.accent: Material.Orange
} |
Примечание: Несмотря на то, что акцент может быть любым цветом, рекомендуется использовать один из предопределённых цветов Material, которые разработаны для хорошей работы с остальной цветовой палитрой Material.
Material.background : цвет
Это прикреплённое свойство содержит цвет фона темы. Свойство можно прикрепить к любому окну или элементу. Значение распространяется на дочерние элементы.
Значение по умолчанию зависит от темы (светлая или тёмная).
В следующем примере цвет фона кнопки изменяется на Material.Teal:
Button {
text: qsTr("Button")
highlighted: true
Material.background: Material.Teal
} |
Material.elevation : целое число
Это прикреплённое свойство содержит высоту подъёма элемента управления. Чем выше подъём, тем глубже тень. Свойство можно прикрепить к любому элементу управления, но не все элементы управления визуализируют подъём.
Значение по умолчанию зависит от конкретного элемента управления.
В следующем примере высота подъёма панели устанавливается в 6 для достижения внешнего вида поднятой карточки:
Pane {
width: 120
height: 120
Material.elevation: 6
Label {
text: qsTr("I'm a card!")
anchors.centerIn: parent
}
} |
Material.foreground : цвет
Это прикреплённое свойство содержит цвет переднего плана темы. Свойство можно прикрепить к любому окну или элементу. Значение распространяется на дочерние элементы.
Значение по умолчанию зависит от темы (светлая или тёмная).
В следующем примере цвет переднего плана кнопки устанавливается в Material.Pink:
Button {
text: qsTr("Button")
Material.foreground: Material.Pink
} |
Material.primary : цвет
Это прикреплённое свойство содержит основной цвет темы. Свойство можно прикрепить к любому окну или элементу. Значение распространяется на дочерние элементы.
Основной цвет используется как цвет фона ToolBar по умолчанию.
Значение по умолчанию — Material.Indigo.
Примечание: Несмотря на то, что основной цвет может быть любым цветом, рекомендуется использовать один из предопределённых цветов Material, которые разработаны для хорошей работы с остальной цветовой палитрой Material.
Material.theme : перечисление
Это прикреплённое свойство определяет, является ли тема светлой или тёмной. Свойство можно прикрепить к любому окну или элементу. Значение распространяется на дочерние элементы.
Доступные темы:
| Константа | Описание |
|---|---|
Material.Light |
Светлая тема (по умолчанию) |
Material.Dark |
Тёмная тема |
Material.System |
Тема системы |
Установка темы на System выбирает светлую или тёмную тему в зависимости от цветов темы системы. Однако при чтении значения свойства темы, значение никогда не равно System, а является фактической темой.
В следующем примере тема для обеих панелей и кнопки устанавливается на Material.Dark:
Pane {
Material.theme: Material.Dark
Button {
text: qsTr("Button")
}
} |
Документация по прикреплённым методам
цвет color(перечисление predefined, перечисление shade)
Этот прикреплённый метод возвращает эффективное значение цвета указанного предопределённого цвета Material, соединённого с заданным оттенком. Если опущен, аргумент оттенка по умолчанию Material.Shade500.
Rectangle {
color: Material.color(Material.Red)
} Связанная информация
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.9/qtquickcontrols2-material.html