Spec-Zone.ru › Qt 6.0

Стиль Material

Стиль Material основан на рекомендациях Google Material Design. Подробнее...

Заявление импорта: import QtQuick.Controls.Material 2.12
С момента: Qt 5.7

Присоединённые свойства

  • accent : цвет
  • background : цвет
  • elevation : целое число
  • foreground : цвет
  • primary : цвет
  • theme : перечисление

Присоединённые методы

  • цвет color(перечисление predefined, перечисление shade)

Подробное описание

Стиль Material основан на Рекомендациях Google Material Design. Он обеспечивает унифицированный опыт на разных платформах и размерах устройств.

Стиль Material в светлой теме

Стиль Material в тёмной теме

Чтобы запустить приложение со стилем Material, см. Использование стилей в Qt Quick Controls.

Примечание: Стиль Material не является родным стилем Android. Стиль Material — это реализация стиля Qt Quick Controls на 100% кроссплатформенная, которая следует рекомендациям Google Material Design. Стиль работает на любой платформе и выглядит более или менее одинаково везде. Незначительные различия могут возникнуть из-за различий в доступных системных шрифтах и движках рендеринга шрифтов.

Настройка

Стиль Material позволяет настраивать пять атрибутов: theme, primary, accent, foreground и background.

Все атрибуты могут быть указаны для любого окна или элемента, и они автоматически передаются потомкам таким же образом, как и шрифты. В следующем примере окно и все три переключателя отображаются в тёмной теме с фиолетовым цветом акцента:

import QtQuick 2.12
import QtQuick.Controls 2.12
import QtQuick.Controls.Material 2.12

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".
Variant Определяет вариант Material. Material Design имеет два варианта: обычный вариант, предназначенный для сенсорных устройств, и плотный вариант для настольных компьютеров. Плотное представление использует меньшие размеры для элементов управления и их шрифтов.

Значение может быть "Normal" или "Dense".

Accent Определяет стандартный цвет акцента Material. Значение может быть любым цветом, но рекомендуется использовать один из предопределённых цветов Material, например "Teal".
Primary Определяет стандартный главный цвет Material. Значение может быть любым цветом, но рекомендуется использовать один из предопределённых цветов Material, например "BlueGrey".
Foreground Определяет стандартный цвет переднего плана Material. Значение может быть любым цветом или одним из предопределённых цветов Material, например "Brown".
Background Определяет стандартный цвет фона Material. Значение может быть любым цветом или одним из предопределённых цветов Material, например "Grey".

См. Файл конфигурации Qt Quick Controls для получения дополнительной информации о файле конфигурации.

Переменные среды

Переменная Описание
QT_QUICK_CONTROLS_MATERIAL_THEME Определяет стандартную тему Material. Значение может быть одним из доступных тем, например "Dark".
QT_QUICK_CONTROLS_MATERIAL_VARIANT Определяет вариант Material. Material Design имеет два варианта: обычный вариант, предназначенный для сенсорных устройств, и плотный вариант для настольных компьютеров. Плотное представление использует меньшие размеры для элементов управления и их шрифтов.

Значение может быть "Normal" или "Dense".

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 для получения полного списка поддерживаемых переменных среды.

Зависимость

Стиль Material необходимо импортировать отдельно, чтобы получить доступ к атрибутам, специфичным для стиля 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 также поддерживает плотный вариант, где элементы управления, такие как кнопки и делегаты, меньше по высоте и используют меньшие размеры шрифтов. Рекомендуется использовать плотный вариант на настольных платформах, где мышь и клавиатура позволяют более точное и гибкое взаимодействие с пользователем.

Для использования плотного варианта установите переменную среды QT_QUICK_CONTROLS_MATERIAL_VARIANT в Dense или укажите Variant=Dense в файле qtquickcontrols2.conf. Значение по умолчанию в обоих случаях Normal.

На следующих изображениях показаны различия между некоторыми элементами управления при использовании обычного и плотного вариантов:

Обратите внимание, что указанные выше высоты могут изменяться в зависимости от различий в шрифтах на разных платформах.

Документация по присоединённому свойству

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")
    }
}

Документация по методам-привязкам

цвет цвет(перечисление предварительно_определенный, перечисление оттенок)

Этот метод-привязка возвращает эффективное значение цвета указанного предварительно определённого цвета Material, комбинированного с заданным оттенком. Если аргумент оттенка опущен, он по умолчанию равен Material.Shade500.

Rectangle {
    color: Material.color(Material.Red)
}

Связанная информация

  • Стиль компонентов Qt Quick Controls

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.0/qtquickcontrols2-material.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API