Spec-Zone.ru › Qt 5.15

Универсальный стиль

Универсальный стиль основан на Руководстве по универсальному дизайну Microsoft. Подробнее...

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

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

  • акцент : цвет
  • фон : цвет
  • передний план : цвет
  • тема : перечисление

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

  • цвет цвет(предварительно определенное перечисление)

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

Универсальный стиль — это независимый от устройства стиль, основанный на Руководстве по универсальному дизайну Microsoft. Универсальный стиль разработан для красивого отображения на всех устройствах, от телефонов и планшетов до ПК.

Универсальный стиль в светлой теме

Универсальный стиль в тёмной теме

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

Примечание: Универсальный стиль не является родным стилем Windows 10. Универсальный стиль — это реализация стиля Qt Quick Controls, полностью кроссплатформенная, которая соответствует Руководству по универсальному дизайну Microsoft. Стиль работает на любой платформе и выглядит более или менее одинаково на всех. Незначительные различия могут возникнуть из-за различий в доступных системных шрифтах и двигателях рендеринга шрифтов.

Настройка

Универсальный стиль позволяет настраивать четыре атрибута: тему, акцент, передний план и фон.

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

import QtQuick 2.12
import QtQuick.Controls 2.12
import QtQuick.Controls.Universal 2.12

ApplicationWindow {
    visible: true

    Universal.theme: Universal.Dark
    Universal.accent: Universal.Violet

    Column {
        anchors.centerIn: parent

        RadioButton { text: qsTr("Small") }
        RadioButton { text: qsTr("Medium");  checked: true }
        RadioButton { text: qsTr("Large") }
    }
}

Помимо указания атрибутов в QML, их также можно указать через переменные окружения или в файле конфигурации. Атрибуты, указанные в QML, имеют приоритет над всеми другими методами.

Файл конфигурации

Переменная Описание
Theme Устанавливает значение по умолчанию для Универсальной темы. Значение может быть одним из доступных вариантов, например "Dark".
Accent Устанавливает значение по умолчанию для цвета универсального акцента. Значение может быть любым цветом, но рекомендуется использовать один из предварительно определённых универсальных цветов, например "Violet".
Foreground Устанавливает значение по умолчанию для цвета универсального переднего плана. Значение может быть любым цветом или одним из предварительно определённых универсальных цветов, например "Brown".
Background Устанавливает значение по умолчанию для цвета универсального фона. Значение может быть любым цветом или одним из предварительно определённых универсальных цветов, например "Steel".

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

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

Переменная Описание
QT_QUICK_CONTROLS_UNIVERSAL_THEME Устанавливает значение по умолчанию для Универсальной темы. Значение может быть одним из доступных вариантов, например "Dark".
QT_QUICK_CONTROLS_UNIVERSAL_ACCENT Устанавливает значение по умолчанию для цвета универсального акцента. Значение может быть любым цветом, но рекомендуется использовать один из предварительно определённых универсальных цветов, например "Violet".
QT_QUICK_CONTROLS_UNIVERSAL_FOREGROUND Устанавливает значение по умолчанию для цвета универсального переднего плана. Значение может быть любым цветом или одним из предварительно определённых универсальных цветов, например "Brown".
QT_QUICK_CONTROLS_UNIVERSAL_BACKGROUND Устанавливает значение по умолчанию для цвета универсального фона. Значение может быть любым цветом или одним из предварительно определённых универсальных цветов, например "Steel".

См. Поддерживаемые переменные среды в Qt Quick Controls для получения полного списка поддерживаемых переменных среды.

Зависимость

Для доступа к атрибутам, специфичным для универсального стиля, необходимо дополнительно импортировать универсальный стиль. Следует отметить, что независимо от ссылок на универсальный стиль, код приложения работает с любым другим стилем. Атрибуты, специфичные для универсального стиля, действуют только при запуске приложения с универсальным стилем.

Если универсальный стиль импортирован в файл QML, который всегда загружается, универсальный стиль необходимо развернуть вместе с приложением, чтобы приложение можно было запустить независимо от стиля, с которым запускается приложение. Используя выбор файлов, можно применять настройки, специфичные для стиля, без создания жёсткой зависимости от стиля.

Предварительно определённые универсальные цвета

Доступные предварительно определённые цвета:

Константа Описание
Universal.Lime #A4C400
Universal.Green #60A917
Universal.Emerald #008A00
Universal.Teal #00ABA9
Universal.Cyan #1BA1E2
Universal.Cobalt #3E65FF (цвет акцента по умолчанию)
Universal.Indigo #6A00FF
Universal.Violet #AA00FF
Universal.Pink #F472D0
Universal.Magenta #D80073
Universal.Crimson #A20025
Universal.Red #E51400
Universal.Orange #FA6800
Universal.Amber #F0A30A
Universal.Yellow #E3C800
Universal.Brown #825A2C
Universal.Olive #6D8764
Universal.Steel #647687
Universal.Mauve #76608A
Universal.Taupe #87794E

См. также Стиль по умолчанию, Материальный стиль

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

Universal.акцент : цвет

Это присоединенное свойство содержит цвет акцента темы. Свойство может быть присоединено к любому окну или элементу. Значение передается потомкам.

Значение по умолчанию — Universal.Cobalt.

В следующем примере цвет акцента выделенной кнопки изменяется на Universal.Orange:

Button {
    text: qsTr("Button")
    highlighted: true
    Universal.accent: Universal.Orange
}

Примечание: Несмотря на то, что акцент может быть любым цветом, рекомендуется использовать один из предварительно определённых универсальных цветов, которые были разработаны для совместной работы с остальной частью палитры универсального стиля.

Universal.фон : цвет

Это присоединенное свойство содержит цвет фона темы. Свойство может быть присоединено к любому окну или элементу. Значение передается потомкам.

Значение по умолчанию зависит от темы (светлая или тёмная).

В следующем примере цвет фона панели изменяется на Universal.Steel:

Pane {
    Universal.background: Universal.Steel

    Button {
        text: qsTr("Button")
    }
}

Universal.foreground : цвет

Это присоединённое свойство содержит цвет переднего плана темы. Свойство может быть присоединённо к любому окну или элементу. Значение передаётся потомкам.

Значение по умолчанию зависит от темы (светлая или тёмная).

В следующем примере цвет переднего плана кнопки задаётся как Universal.Pink:

Button {
    text: qsTr("Button")
    Universal.foreground: Universal.Pink
}

Universal.theme : перечисление

Это присоединённое свойство указывает, является ли тема светлой или тёмной. Свойство может быть присоединённо к любому окну или элементу. Значение передаётся потомкам.

Доступные темы:

Постоянная Описание
Universal.Light Светлая тема (по умолчанию)
Universal.Dark Тёмная тема
Universal.System Системная тема

Установив тему на System, выбирается светлая или тёмная тема в зависимости от цветов системной темы. Однако при чтении значения свойства темы, значение никогда не будет System, а будет фактической темой.

В следующем примере тема для панели и кнопки установлена как Universal.Dark:

Pane {
    Universal.theme: Universal.Dark

    Button {
        text: qsTr("Button")
    }
}

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

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

Этот присоединённый метод возвращает эффективное значение цвета указанного предварительно определённого цвета Universal.

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

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

  • Стилизация Qt Quick Controls

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

Spec-Zone.ru

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