Auf dieser Seite

Material-Stil

Der Material-Stil basiert auf den Google Material Design-Richtlinien. Mehr...

Import-Anweisung: import QtQuick.Controls.Material
Seit: Qt 5.7

Angeschlossene Eigenschaften

Zugehörige Methoden

  • color color(Aufzählung „vordefiniert“, Aufzählung „Farbton“)

Ausführliche Beschreibung

Der Material-Stil basiert auf den Google Material Design-Richtlinien. Er ermöglicht ein einheitliches Nutzererlebnis über alle Plattformen und Gerätegrößen hinweg.

Galerie der Steuerelemente im „Material“-Stil mit hellem Design

Das helle Design des Material-Stils.

Galerie der Steuerelemente im Material-Stil mit dunklem Design

Das dunkle Design des Material-Stils.

Informationen zum Ausführen einer Anwendung im Material-Stil finden Sie unter „Verwenden von Stilen“ unter Qt Quick Controls.

Hinweis: Der Material-Stil ist kein nativer Android-Stil. Der Material-Stil ist eine zu 100 % plattformübergreifende Qt Quick Controls -Stilimplementierung, die den Google Material Design-Richtlinien folgt. Der Stil läuft auf jeder Plattform und sieht überall mehr oder weniger identisch aus. Geringfügige Abweichungen können aufgrund von Unterschieden bei den verfügbaren Systemschriftarten und Schriftart-Rendering-Engines auftreten.

Hinweis: Da sich die Material-Design-Richtlinien im Laufe der Zeit ändern, können sich bei diesem Stil beispielsweise bestimmte Abstands- oder Schriftwerte ändern, um die Übereinstimmung mit den Richtlinien zu gewährleisten.

Anpassung

Der Material-Stil unterstützt mehrere anpassbare Attribute. Einige dieser Attribute werden propagate an untergeordnete Elemente weitergegeben, genau wie fonts:

Schaltflächen im Material-Stil, die Theme- und Elevation-Attribute anzeigen

Die übrigen Attribute werden nicht an untergeordnete Elemente weitergegeben:

Im folgenden Beispiel werden das Fenster und alle drei Optionsfelder im dunklen Design mit einer violetten Akzentfarbe angezeigt:

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

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

Material-Stilelemente mit benutzerdefiniertem violetten Akzent

Neben der Angabe der Attribute in QML ist es auch möglich, einige davon über Umgebungsvariablen oder in einer Konfigurationsdatei festzulegen. In QML angegebene Attribute haben Vorrang vor allen anderen Methoden.

Konfigurationsdatei

VariableBeschreibung
ThemeLegt das Standard -Material-Design fest. Der Wert kann eines der verfügbaren Designs sein, zum Beispiel „ "Dark" “.
VariantLegt die Material-Variante fest. Das Material Design verfügt über zwei Varianten: eine normale Variante, die für Touch-Geräte konzipiert ist, und eine „dense“-Variante für den Desktop. Die „dense“-Variante verwendet kleinere Größen für Steuerelemente und deren Schriftarten.

Der Wert kann „ "Normal" “ oder „ "Dense" “ lauten.

AccentLegt die Standard-Akzentfarbe für Material fest. Der Wert kann ein beliebiger Wert aus color sein, es wird jedoch empfohlen, eine der vordefinierten Material-Farben zu verwenden, zum Beispiel "Teal".
PrimaryLegt die Standard-Hauptfarbe für Material fest. Der Wert kann ein beliebiger „ color “-Wert sein, es wird jedoch empfohlen, eine der vordefinierten Material-Farben zu verwenden, zum Beispiel "BlueGrey".
ForegroundLegt die Standard-Vordergrundfarbe des Materials fest. Der Wert kann ein beliebiger „ color “-Wert sein oder eine der vordefinierten Materialfarben, zum Beispiel "Brown".
BackgroundLegt die Standard-Hintergrundfarbe des Materials fest. Der Wert kann ein beliebiger Wert aus dem Bereich color sein oder eine der vordefinierten Materialfarben, zum Beispiel "Grey".

Weitere Informationen zur Konfigurationsdatei finden Sie unter „Qt Quick Controls -Konfigurationsdatei “.

Umgebungsvariablen

VariableBeschreibung
QT_QUICK_CONTROLS_MATERIAL_THEMELegt das Standard -Material-Design fest. Der Wert kann eines der verfügbaren Designs sein, zum Beispiel „ "Dark" “.
QT_QUICK_CONTROLS_MATERIAL_VARIANTLegt die Material-Variante fest. Das Material Design verfügt über zwei Varianten: eine normale Variante, die für Touch-Geräte konzipiert ist, und eine „Dense“-Variante für den Desktop. Die „Dense“-Variante verwendet kleinere Größen für Steuerelemente und deren Schriftarten.

Der Wert kann „ "Normal" “ oder „ "Dense" “ lauten.

QT_QUICK_CONTROLS_MATERIAL_ACCENTLegt die Standard-Akzentfarbe für Material fest. Der Wert kann ein beliebiges color sein, es wird jedoch empfohlen, eine der vordefinierten Material-Farben zu verwenden, zum Beispiel "Teal".
QT_QUICK_CONTROLS_MATERIAL_PRIMARYLegt die Standard-Hauptfarbe für Material fest. Der Wert kann ein beliebiger „ color “-Wert sein, es wird jedoch empfohlen, eine der vordefinierten Material-Farben zu verwenden, zum Beispiel "BlueGrey".
QT_QUICK_CONTROLS_MATERIAL_FOREGROUNDLegt die Standard-Vordergrundfarbe des Materials fest. Der Wert kann ein beliebiger „ color “-Wert sein oder eine der vordefinierten Materialfarben, zum Beispiel "Brown".
QT_QUICK_CONTROLS_MATERIAL_BACKGROUNDLegt die Standard-Hintergrundfarbe des Materials fest. Der Wert kann ein beliebiger Wert aus dem Bereich color sein oder eine der vordefinierten Materialfarben, zum Beispiel "Grey".

Eine vollständige Liste der unterstützten Umgebungsvariablen finden Sie unter „Unterstützte Umgebungsvariablen“ unter Qt Quick Controls.

Abhängigkeit

Der Material-Stil muss separat importiert werden, um Zugriff auf die für den Material-Stil spezifischen Attribute zu erhalten. Es ist zu beachten, dass unabhängig von den Verweisen auf den Material-Stil derselbe Anwendungscode auch mit jedem anderen Stil ausgeführt wird. Material-spezifische Attribute wirken sich nur aus, wenn die Anwendung mit dem Material-Stil ausgeführt wird.

Wird der „Material“-Stil in eine QML-Datei importiert, die stets geladen wird, muss der „Material“-Stil zusammen mit der Anwendung bereitgestellt werden, damit die Anwendung unabhängig davon ausgeführt werden kann, mit welchem Stil sie gestartet wird. Durch die Verwendung von Dateiselektoren lassen sich stilbezogene Anpassungen vornehmen, ohne eine feste Abhängigkeit von einem bestimmten Stil zu schaffen.

Vordefinierte Material-Farben

Auch wenn Primär- und Akzentfarben beliebige „ color “ sein können, wird empfohlen, eine der vordefinierten Farben zu verwenden, die so gestaltet wurden, dass sie gut mit dem Rest der Material-Stilpalette harmonieren:

Verfügbare vordefinierte Farben:

KonstanteBeschreibung
Material.Red
#F44336
Material.Pink
#E91E63 (Standard-Akzentfarbe)
Material.Purple
#9C27B0
Material.DeepPurple
#673AB7
Material.Indigo
#3F51B5 (Standard-Primärfarbe)
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

Wenn das dunkle Design aktiviert ist, werden standardmäßig verschiedene Schattierungen der vordefinierten Farben verwendet:

KonstanteBeschreibung
Material.Red
#EF9A9A
Material.Pink
#F48FB1 (Standard-Akzentfarbe)
Material.Purple
#CE93D8
Material.DeepPurple
#B39DDB
Material.Indigo
#9FA8DA (Standard-Primärfarbe)
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

Vordefinierte Farbtöne

Für jede vordefinierte Farbe gibt es mehrere verschiedene Farbtöne, die an die Funktion ` Material.color()` übergeben werden können:

KonstanteWert
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

Siehe auch „Basic Style“, „Universal Style“

Varianten

Der „Material“-Stil unterstützt auch eine kompakte Variante, bei der Steuerelemente wie Schaltflächen und Delegaten eine geringere Höhe aufweisen und kleinere Schriftgrößen verwenden. Es wird empfohlen, die kompakte Variante auf Desktop-Plattformen zu verwenden, wo Maus und Tastatur eine präzisere und flexiblere Benutzerinteraktion ermöglichen.

Um die „dense“-Variante zu verwenden, setzen Sie entweder die Umgebungsvariable „ QT_QUICK_CONTROLS_MATERIAL_VARIANT “ auf „ Dense “ oder geben Sie „ Variant=Dense “ in der Datei „qtquickcontrols2.conf“ an. Der Standardwert lautet in beiden Fällen „ Normal “.

Die folgenden Abbildungen veranschaulichen die Unterschiede zwischen einigen Steuerelementen bei Verwendung der normalen und der „dense“-Variante:

Steuerelemente für den Materialstil in der normalen Größenvariante

Steuerelemente für den Materialstil in der Variante „Dense Size“

Beachten Sie, dass die oben gezeigten Höhen je nach den plattformspezifischen Unterschieden bei den Schriftarten variieren können.

Hinweise zu bestimmten Steuerelementen

TextArea

TextArea unterstützt zwei containerStyles: „ Filled “ und „ Outlined “. Bei „Outlined TextAreas“ wird der Platzhaltertext schwebend am oberen Rand des Steuerelements angezeigt. Dies erfordert, dass der Platzhaltertext über die Grenzen des Steuerelements hinausragt, was dazu führen kann, dass er abgeschnitten wird, wenn das „ TextArea “ oder das „Flickable“, zu dem es gehört, „ clip “ auf „ true “ setzt. Um dies zu vermeiden, wird in diesen Fällen „ topInset “ auf einen geeigneten Wert gesetzt.

Gemäß den Material-Richtlinien sollte Platzhaltertext kurz gehalten werden und nicht mehrere Zeilen einnehmen.

TextField

Das oben für „ TextArea “ beschriebene Problem mit dem Abschneiden kann auch bei „ TextField “ auftreten. Um dies zu vermeiden, wird „ topInset “ auf einen geeigneten Wert gesetzt, wenn „ TextField “ „clip“ auf „ true “ setzt.

Gemäß den Material-Richtlinien sollte Platzhaltertext kurz gehalten werden und nicht mehrere Zeilen einnehmen.

Dokumentation zu den angehängten Eigenschaften

Material.accent: Farbe

Diese angehängte Eigenschaft enthält die Akzentfarbe des Themes. Die Eigenschaft kann an jedes Fenster oder Element angehängt werden. Der Wert wird an untergeordnete Elemente weitergegeben.

Der Standardwert lautet „ Material.Pink “.

Im folgenden Beispiel wird die Akzentfarbe der hervorgehobenen Schaltfläche auf „ Material.Orange “ geändert:

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

Steuerelemente für den Materialstil zur Darstellung der Akzentfarbe

Hinweis: Auch wenn die Akzentfarbe beliebig sein kann ( color), wird empfohlen, eine der vordefinierten Material-Farben zu verwenden, die so gestaltet wurden, dass sie gut mit dem Rest der Material-Farbpalette harmonieren.


Material.background: color

Diese angehängte Eigenschaft enthält die Hintergrundfarbe des Themes. Die Eigenschaft kann an jedes Fenster oder Element angehängt werden. Der Wert wird an untergeordnete Elemente weitergegeben.

Der Standardwert ist themenspezifisch (hell oder dunkel).

Im folgenden Beispiel wird die Hintergrundfarbe der Schaltfläche auf „ Material.Teal “ geändert:

Button {
    text: qsTr("Button")
    highlighted: true
    Material.background: Material.Teal
}

Steuerelemente im Material-Stil zur Darstellung der Hintergrundfarbe


Material.elevation: int

Diese angehängte Eigenschaft enthält die Höhe des Steuerelements. Je höher die Höhe, desto tiefer der Schatten. Die Eigenschaft kann an jedes Steuerelement angehängt werden, jedoch zeigen nicht alle Steuerelemente die Höhe an. Der Wert wird nicht an untergeordnete Elemente weitergegeben.

Der Standardwert ist steuerelementabhängig.

Im folgenden Beispiel wird die Höhe des Fensters auf „ 6 “ gesetzt, um das Aussehen einer erhabenen Karte zu erzielen:

Pane {
    width: 120
    height: 120

    Material.elevation: 6

    Label {
        text: qsTr("I'm a card!")
        anchors.centerIn: parent
    }
}

Materialstil-Steuerelemente zur Anzeige von Höhenstufen


Material.foreground: color

Diese angehängte Eigenschaft enthält die Vordergrundfarbe des Themes. Die Eigenschaft kann an jedes Fenster oder Element angehängt werden. Der Wert wird an untergeordnete Elemente weitergegeben.

Der Standardwert ist themenspezifisch (hell oder dunkel).

Im folgenden Beispiel wird die Vordergrundfarbe der Schaltfläche auf „ Material.Pink “ gesetzt:

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

Schaltfläche mit rosa Vordergrund im Material-Stil


Material.primary: color

Diese angehängte Eigenschaft enthält die Primärfarbe des Themes. Die Eigenschaft kann an jedes Fenster oder Element angehängt werden. Der Wert wird an untergeordnete Elemente weitergegeben.

Die Primärfarbe wird standardmäßig als Hintergrundfarbe für „ ToolBar “ verwendet.

Der Standardwert lautet „ Material.Indigo “.

Hinweis: Auch wenn die Primärfarbe ein beliebiger Wert von color sein kann, wird empfohlen, eine der vordefinierten Materialfarben zu verwenden, die so gestaltet wurden, dass sie gut mit dem Rest der Material-Stilpalette harmonieren.


Material.theme: Aufzählung

Diese angehängte Eigenschaft gibt an, ob das Design hell oder dunkel ist. Die Eigenschaft kann an jedes Fenster oder Element angehängt werden. Der Wert wird an untergeordnete Elemente weitergegeben.

Verfügbare Designs:

KonstanteBeschreibung
Material.LightHelles Design (Standard)
Material.DarkDunkles Design
Material.SystemSystem-Design

Wenn das Design auf „ System “ gesetzt wird, wird je nach den Farben des Systemdesigns entweder das helle oder das dunkle Design ausgewählt. Beim Auslesen des Werts der Eigenschaft „theme“ ist der Wert jedoch niemals „ System “, sondern das tatsächlich verwendete Design.

Im folgenden Beispiel ist das Design sowohl für den Bereich als auch für die Schaltfläche auf „ Material.Dark “ festgelegt:

Pane {
    Material.theme: Material.Dark

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

Fenster und Schaltfläche im dunklen Design „Material“


Material.roundedScale: Aufzählung

Diese angehängte Eigenschaft enthält den Radius der abgerundeten Ecken, die für das Zielsteuerelement verwendet werden. Die Eigenschaft kann an jedes Fenster oder Element angehängt werden, wird jedoch nur von einigen Steuerelementen unterstützt. Der Wert wird nicht an untergeordnete Elemente weitergegeben.

Der Standardwert ist steuerelementabhängig.

Verfügbare Skalierungen:

KonstantBeschreibung
Material.NotRoundedRechte Winkel
Material.ExtraSmallScaleExtra kleine abgerundete Ecken
Material.SmallScaleKleine abgerundete Ecken
Material.MediumScaleMäßig abgerundete Ecken
Material.LargeScaleGroße abgerundete Ecken
Material.ExtraLargeScaleExtra große abgerundete Ecken
Material.FullScaleVollständig abgerundete Ecken

Diese Eigenschaft wurde in Qt 6.5 hinzugefügt.

Siehe auch: Material-Stil: Form.


Material.containerStyle: Aufzählung

Diese angehängte Eigenschaft enthält den Stil des vom Zielsteuerelement verwendeten Containers. Die Eigenschaft kann an jedes Fenster oder Element angehängt werden, wird jedoch standardmäßig nur von „ TextField “ und „ TextArea “ unterstützt. Der Wert wird nicht an untergeordnete Elemente weitergegeben.

Der Standardwert ist steuerelementabhängig.

Verfügbare Stile:

KonstantBeschreibung
Material.FilledVerwenden Sie die Variante mit ausgefülltem Container, sofern verfügbar
Material.OutlinedVerwenden Sie die Variante mit umrandetem Container, sofern verfügbar

Diese Eigenschaft wurde in Qt 6.5 hinzugefügt.

Siehe auch: Material-Stil: Textfeld-Container.


Beigefügte Methodendokumentation

color color(Enumeration predefined, Enumeration shade)

Diese angehängte Methode gibt den tatsächlichen Farbwert der angegebenen vordefinierten Materialfarbe in Kombination mit dem angegebenen Farbton zurück. Wird das Farbton-Argument weggelassen, wird standardmäßig „ Material.Shade500 “ verwendet.

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

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.