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
- accent: Farbe
- Hintergrund: Farbe
- Höhe: int
- Vordergrund: Farbe
- primär: Farbe
- Thema: Aufzählung
- abgerundete Skala: Aufzählung
- Container-Stil: Aufzählung
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.
Das helle Design des Material-Stils. |
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:

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:
|
|
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
| Variable | Beschreibung |
|---|---|
Theme | Legt das Standard -Material-Design fest. Der Wert kann eines der verfügbaren Designs sein, zum Beispiel „ "Dark" “. |
Variant | Legt 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 „ |
Accent | Legt 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". |
Primary | Legt 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". |
Foreground | Legt die Standard-Vordergrundfarbe des Materials fest. Der Wert kann ein beliebiger „ color “-Wert sein oder eine der vordefinierten Materialfarben, zum Beispiel "Brown". |
Background | Legt 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
| Variable | Beschreibung |
|---|---|
QT_QUICK_CONTROLS_MATERIAL_THEME | Legt das Standard -Material-Design fest. Der Wert kann eines der verfügbaren Designs sein, zum Beispiel „ "Dark" “. |
QT_QUICK_CONTROLS_MATERIAL_VARIANT | Legt 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 „ |
QT_QUICK_CONTROLS_MATERIAL_ACCENT | Legt 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_PRIMARY | Legt 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_FOREGROUND | Legt 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_BACKGROUND | Legt 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:
| Konstante | Beschreibung |
|---|---|
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:
| Konstante | Beschreibung |
|---|---|
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:
| Konstante | Wert |
|---|---|
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:
|
|
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:
|
|
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:
|
|
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:
|
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:
|
|
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:
| Konstante | Beschreibung |
|---|---|
Material.Light | Helles Design (Standard) |
Material.Dark | Dunkles Design |
Material.System | System-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:
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:
| Konstant | Beschreibung |
|---|---|
Material.NotRounded | Rechte Winkel |
Material.ExtraSmallScale | Extra kleine abgerundete Ecken |
Material.SmallScale | Kleine abgerundete Ecken |
Material.MediumScale | Mäßig abgerundete Ecken |
Material.LargeScale | Große abgerundete Ecken |
Material.ExtraLargeScale | Extra große abgerundete Ecken |
Material.FullScale | Vollstä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:
| Konstant | Beschreibung |
|---|---|
Material.Filled | Verwenden Sie die Variante mit ausgefülltem Container, sofern verfügbar |
Material.Outlined | Verwenden 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)
}Weiterführende Informationen
© 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.









