Imagine Style

Der Imagine Style basiert auf konfigurierbaren Bild-Assets. Mehr...

Import-Anweisung: importiere QtQuick.Controls.Imagine 2.12
Seit: Qt 5.10

Angehängte Eigenschaften

  • path: Zeichenkette

Detaillierte Beschreibung

Der Imagine-Stil basiert auf Bild-Assets. Der Stil wird mit einem Standardsatz von Bildern geliefert, aber die Bilder können leicht geändert werden, indem ein Verzeichnis mit Bildern unter Verwendung einer vordefinierten Namenskonvention angegeben wird.

Der Imagine-Stil mit den Standardbildern

Um eine Anwendung mit dem Imagine-Stil auszuführen, siehe Verwenden von Stilen in Qt Quick Controls.

Dateinamen

Die Bilddateien werden nach der folgenden Konvention benannt:

<control>-<element>-<states>

Die Abschnitte <control> und <element> sind obligatorisch, während der Abschnitt <states> optional ist. Wenn zum Beispiel eine einzige Datei mit dem Namen "button-background.9.png" für Button bereitgestellt wird, wird sie für jeden Zustand verwendet, den Button unterstützt. Es liegt im Ermessen des Entwicklers, für welche Zustände er Bilder zur Verfügung stellt. Es wird jedoch empfohlen, nach Möglichkeit Bilder für die häufigsten Zustände der Steuerelemente bereitzustellen, z. B. für disabled, pressed usw. Dadurch wird sichergestellt, dass sich interaktive Steuerelemente visuell so verhalten, wie der Endbenutzer es erwartet.

Element-Referenz

In der folgenden Tabelle ist aufgeführt, welche Elemente für jedes Steuerelement unterstützt werden, zusammen mit den möglichen Zuständen für dieses Element und der erwarteten Dateierweiterung. Ein Element ist ein Bild, das einen bestimmten visuellen Teil des Steuerelements darstellt. Das Element "background" von Button stellt beispielsweise das Element background dar.

SteuerelementElementZuständeErweiterung
ApplicationWindowHintergrundaktiv.9.png (oder .png)
BusyIndicatorAnimationdeaktiviert, laufend, gespiegelt, schwebend.webp
Hintergrundwie oben.webp
ButtonHintergrunddeaktiviert, gedrückt, angekreuzt, ankreuzbar, fokussiert, hervorgehoben, flach, gespiegelt, schwebend.9.png
CheckBoxHintergrunddeaktiviert, gedrückt, angekreuzt, teilweise angekreuzt, fokussiert, gespiegelt, schwebend.9.png (oder .png)
Anzeigewie oben.png
CheckDelegateHintergrunddeaktiviert, gedrückt, angekreuzt, teilweise angekreuzt, fokussiert, hervorgehoben, gespiegelt, schwebend.9.png (oder .png)
Anzeigewie oben.png
ComboBoxHintergrunddeaktiviert, gedrückt, bearbeitbar, offen, fokussiert, gespiegelt, schwebend, flach.9.png (oder .png)
Anzeigewie oben.png
Popupwie oben.9.png (oder .png)
DelayButtonHintergrunddeaktiviert, gedrückt, markiert, kontrollierbar, fokussiert, gespiegelt, schwebend.9.png (oder .png)
Fortschrittwie oben.9.png (oder .png)
Maskegleich wie oben.9.png (oder .png)
DialHintergrund1deaktiviert, gedrückt, fokussiert, gespiegelt, schwebend.9.png (oder .png)
Griffwie oben.9.png (oder .png)
DialogHintergrundmodal, abgeblendet.9.png (oder .png)
Titelwie oben.9.png (oder .png)
Überlagerungmodal.9.png (oder .png)
DialogButtonBoxHintergrunddeaktiviert, gespiegelt.9.png (oder .png)
DrawerHintergrundmodal, abgeblendet, oben, links, rechts, unten.9.png (oder .png)
Überlagerungmodal.9.png (oder .png)
FrameHintergrunddeaktiviert, gespiegelt.9.png (oder .png)
GroupBoxHintergrunddeaktiviert, gespiegelt.9.png (oder .png)
Titelwie oben.9.png (oder .png)
ItemDelegateHintergrunddeaktiviert, gedrückt, fokussiert, hervorgehoben, gespiegelt, schwebend.9.png (oder .png)
LabelHintergrunddeaktiviert, gespiegelt, schwebend.9.png (oder .png)
MenuHintergrundmodal, abgeblendet.9.png (oder .png)
überlagertmodal.9.png (oder .png)
MenuItemPfeildeaktiviert, gedrückt, markiert, fokussiert, hervorgehoben, gespiegelt, schwebend.png
Hintergrundwie oben.9.png (oder .png)
Anzeigewie oben.png
MenuSeparatorHintergrunddeaktiviert, gespiegelt.9.png (oder .png)
Trennzeichenwie oben.9.png (oder .png)
PageHintergrunddeaktiviert, gespiegelt.9.png (oder .png)
PageIndicatorHintergrunddeaktiviert, gespiegelt, schwebend.9.png (oder .png)
delegierendeaktiviert, gedrückt, aktuell, gespiegelt, schwebend.png
PaneHintergrunddeaktiviert, gespiegelt.9.png (oder .png)
PopupHintergrundmodal, abgeblendet.9.png (oder .png)
überlagertmodal.9.png (oder .png)
ProgressBarAnimationdeaktiviert, gespiegelt, schwebend.png
Hintergrunddeaktiviert, unbestimmt, gespiegelt, schwebend.9.png (oder .png)
Maskewie oben.9.png (oder .png)
Fortschrittgleich wie oben.9.png (oder .png)
RadioButtonHintergrunddeaktiviert, gedrückt, markiert, fokussiert, gespiegelt, schwebend.9.png (oder .png)
Anzeigewie oben.png
RadioDelegateHintergrunddeaktiviert, gedrückt, markiert, fokussiert, hervorgehoben, gespiegelt, schwebend.9.png (oder .png)
Anzeigewie oben.png
RangeSliderHintergrundvertikal, horizontal, deaktiviert, fokussiert, gespiegelt, schwebend.9.png (oder .png)
RangeSliderFortschrittwie oben.9.png (oder .png)
Grifferste, zweite, vertikale, horizontale, deaktiviert, gedrückt, fokussiert, gespiegelt, schwebend.png
RoundButtonHintergrunddeaktiviert, gedrückt, markiert, kontrollierbar, fokussiert, hervorgehoben, flach, gespiegelt, schwebend.9.png (oder .png)
ScrollBarHintergrundvertikal, horizontal, deaktiviert, interaktiv, gedrückt, gespiegelt, schwebend.9.png (oder .png)
Griffwie oben.9.png (oder .png)
ScrollIndicatorHintergrundvertikal, horizontal, deaktiviert, gespiegelt, schwebend.9.png (oder .png)
Griffwie oben.9.png (oder .png)
ScrollViewHintergrunddeaktiviert, gespiegelt.9.png (oder .png)
SliderHintergrundvertikal, horizontal, deaktiviert, gedrückt, fokussiert, gespiegelt, schwebend.9.png (oder .png)
Griffwie oben.9.png (oder .png)
Fortschrittgleich wie oben.9.png (oder .png)
SpinBoxHintergrunddeaktiviert, bearbeitbar, fokussiert, gespiegelt, schwebend.9.png (oder .png)
Editordeaktiviert, fokussiert, gespiegelt, schwebend.9.png (oder .png)
Anzeigeauf, ab, deaktiviert, editierbar, gedrückt, fokussiert, gespiegelt, schwebend.9.png (oder .png)
StackViewHintergrunddeaktiviert, gespiegelt.9.png (oder .png)
SwipeDelegateHintergrunddeaktiviert, gedrückt, fokussiert, hervorgehoben, gespiegelt, schwebend.9.png (oder .png)
SwipeViewHintergrundvertikal, horizontal, deaktiviert, interaktiv, fokussiert, gespiegelt.9.png (oder .png)
SwitchHintergrunddeaktiviert, gedrückt, markiert, fokussiert, gespiegelt, schwebend.9.png (oder .png)
Griffwie oben.9.png (oder .png)
Anzeigegleich wie oben.9.png (oder .png)
SwitchDelegateHintergrunddeaktiviert, gedrückt, markiert, fokussiert, hervorgehoben, gespiegelt, schwebend.9.png (oder .png)
Griffwie oben.9.png (oder .png)
Anzeigegleich wie oben.9.png (oder .png)
TabBarHintergrunddeaktiviert, Kopfzeile, Fußzeile, gespiegelt.9.png (oder .png)
TabButtonHintergrunddeaktiviert, gedrückt, markiert, fokussiert, gespiegelt, schwebend.9.png (oder .png)
TextAreaHintergrunddeaktiviert, fokussiert, gespiegelt, schwebend.9.png (oder .png)
TextFieldHintergrunddeaktiviert, fokussiert, gespiegelt, schwebend.9.png (oder .png)
ToolBarHintergrunddeaktiviert, Kopfzeile, Fußzeile, gespiegelt.9.png (oder .png)
ToolButtonHintergrunddeaktiviert, gedrückt, angekreuzt, ankreuzbar, fokussiert, hervorgehoben, flach, gespiegelt, schwebend.9.png (oder .png)
ToolSeparatorHintergrundvertikal, horizontal, deaktiviert, gespiegelt.9.png (oder .png)
Trennzeichenwie oben.9.png (oder .png)
ToolTipHintergrund.9.png (oder .png)
TumblerHintergrunddeaktiviert, fokussiert, gespiegelt, schwebend.9.png (oder .png)

Hinweis: 1) Der Imagine-Stil Dial unterstützt noch nicht die Eigenschaften startAngle und endAngle, die in Qt 6.6 eingeführt wurden, und verwendet stattdessen ein festes Hintergrundbild.

Asset-Beispiele

In der folgenden Tabelle sind Beispiele von Assets (aus den Standard-Assets im Imagine-Stil) für alle Steuerelemente aufgeführt. Die Liste erhebt keinen Anspruch auf Vollständigkeit, da nicht alle Elemente Assets benötigen, aber sie kann als Leitfaden für die Erstellung eigener Assets dienen.

Die Vorlage, aus der diese Elemente exportiert wurden, ist als Sketch-Projekt verfügbar.

SteuerungElementZuständeVermögenswertAnmerkungen
ApplicationWindowHintergrund

Siehe Fußnote 1
Überlagerung

Siehe Fußnote 1
überlagernmodal

Siehe Fußnote 1
ButtonHintergrund

Hintergrunddeaktiviert

Hintergrundfokussiert

Hintergrundgedrückt

Hintergrundgeprüft

Hintergrundgeprüft, deaktiviert

Hintergrundmarkiert, fokussiert

Hintergrundmarkiert, schwebend

Hintergrundhervorgehoben

Hintergrundhervorgehoben, deaktiviert

Hintergrundhervorgehoben, fokussiert

Hintergrundhervorgehoben, schwebend

Hintergrundhervorgehoben, gedrückt

Hintergrundhervorgehoben, markiert

Hintergrundschwebte

Hintergrundflach

Hintergrundflach, deaktiviert

Hintergrundflach, schwebend

Hintergrundflach, gedrückt

Hintergrundflach, kariert

CheckBoxAnzeige

Indikatordeaktiviert

Blinkergedrückt

Indikatorgeprüft

Indikatorgeprüft, gedrückt

Indikatormarkiert, schwebend

Indikatormarkiert, fokussiert

Indikatorteilweise, geprüft

Indikatorteilweise, geprüft, gedrückt

Indikatorteilweise, geprüft, fokussiert

Indikatorteilweise, markiert, schwebend

Indikatorfokussiert

Indikatorschwebte

CheckDelegateHintergrund

Hintergrunddeaktiviert

Hintergrundgedrückt

Hintergrundfokussiert

Hintergrundschwebte

Anzeige

Indikatordeaktiviert

Blinkergedrückt

Indikatorgeprüft

Indikatorgeprüft, gedrückt

Indikatorgeprüft, fokussiert

Indikatormarkiert, schwebend

Indikatorfokussiert

Indikatorschwebte

Indikatorteilweise, markiert

Indikatorteilweise, geprüft, gedrückt

Indikatorteilweise, geprüft, fokussiert

Indikatorteilweise, markiert, schwebend

Indikatorschwebend

ComboBoxHintergrund

Hintergrunddeaktiviert

Hintergrundfokussiert

Hintergrundschwebte

Hintergrundgedrückt

Hintergrundgeöffnet

Hintergrundbearbeitbar

Hintergrundbearbeitbar, fokussiert

Hintergrundbearbeitbar, deaktiviert

Anzeige

Indikatordeaktiviert

Indikatorbearbeitbar

Indikatorbearbeitbar, deaktiviert

Indikatorbearbeitbar, gespiegelt

Indikatorbearbeitbar, gespiegelt, deaktiviert

Popup

DelayButtonHintergrund

Hintergrunddeaktiviert

Hintergrunddeaktiviert, geprüft

Hintergrundfokussiert

Hintergrundgedrückt

Hintergrundgeprüft

Hintergrundmarkiert, fokussiert

Hintergrundmarkiert, schwebend

Hintergrundschwebend

Fortschritt

Fortschrittdeaktiviert

Maske

DialHintergrund

Hintergrunddeaktiviert

Hintergrundfokussiert

Griff

Griffdeaktiviert

Grifffokussiert

Grifffokussiert, gedrückt

Grifffokussiert, schwebend

Griffgedrückt

Griffschwebend

DialogHintergrund

überlagert

Siehe Fußnote 1
Überlagerungmodal

Siehe Fußnote 1
DialogButtonBoxHintergrund

DrawerHintergrundlinks

Hintergrundrechts

Hintergrundoben

Hintergrundunten

überlagern

Siehe Fußnote 1
Überlagerungmodal

Siehe Fußnote 1
FrameHintergrund

GroupBoxHintergrund

Titel

ItemDelegateHintergrund

Hintergrunddeaktiviert

Hintergrundgedrückt

Hintergrundfokussiert

Hintergrundschwebte

Hintergrundhervorgehoben

MenuHintergrund

MenuItemHintergrund

Hintergrundhervorgehoben

Pfeil

Pfeilgespiegelt

Pfeildeaktiviert

Pfeilgespiegelt, deaktiviert

Anzeige

Blinkerdeaktiviert

Blinkergedrückt

Blinkergeprüft

Indikatorgeprüft, gedrückt

Indikatormarkiert, fokussiert

Indikatormarkiert, schwebend

Indikatorfokussiert

Indikatorschwebend

MenuSeparatorTrennzeichen

PageHintergrund

Siehe Fußnote 1
PageIndicatordelegieren

delegierendeaktiviert

delegierendeaktiviert, aktuell

Delegiertergedrückt

Delegierteraktuell

PaneHintergrund

PopupHintergrund

Siehe Fußnote 1
überlagern

Siehe Fußnote 1
Überlagerungmodal

ProgressBarHintergrund

Fortschritt

Maske

RadioButtonAnzeige

Anzeigedeaktiviert

Blinkergedrückt

Blinkergeprüft

Indikatorgeprüft, fokussiert

Indikatormarkiert, schwebend

Indikatormarkiert, gedrückt

Indikatorfokussiert

Indikatorschwebend

RadioDelegateHintergrund

Hintergrunddeaktiviert

Hintergrundgedrückt

Hintergrundfokussiert

Hintergrundschwebte

Indikator

Indikatordeaktiviert

Indikatorgedrückt

Blinkergeprüft

Indikatorgeprüft, fokussiert

Indikatormarkiert, schwebend

Indikatormarkiert, gedrückt

Indikatorfokussiert

Indikatorschwebend

RangeSliderHintergrundvertikal

Hintergrundhorizontal

Fortschrittvertikal

Fortschrittvertikal, deaktiviert

Fortschritthorizontal

Fortschritthorizontal, deaktiviert

Griff

Griffdeaktiviert

Grifffokussiert

Grifffokussiert, schwebend

Grifffokussiert, gedrückt

Griffschwebend

Griffgedrückt

RoundButtonHintergrund

Hintergrunddeaktiviert

Hintergrunddeaktiviert, markiert

Hintergrundfokussiert

Hintergrundgedrückt

Hintergrundgeprüft

Hintergrundmarkiert, fokussiert

Hintergrundmarkiert, schwebend

Hintergrundhervorgehoben

Hintergrundhervorgehoben, gedrückt

Hintergrundhervorgehoben, fokussiert

Hintergrundhervorgehoben, schwebend

Hintergrundschwebend

ScrollBarGriff

Griffdeaktiviert

Griffinteraktiv

Griffinteraktiv, deaktiviert

Griffinteraktiv, gedrückt

Griffinteraktiv, schwebend

ScrollIndicatorGriff

SliderHintergrundvertikal

Hintergrundhorizontal

Fortschrittvertikal

Fortschrittvertikal, deaktiviert

Fortschritthorizontal

Fortschritthorizontal, deaktiviert

Griff

Griffdeaktiviert

Grifffokussiert

Grifffokussiert, schwebend

Grifffokussiert, gedrückt

Griffschwebend

Griffgedrückt

SpinBoxHintergrund

Hintergrunddeaktiviert

Hintergrundfokussiert

Hintergrundbearbeitbar

Anzeigenach oben

Anzeigeoben, deaktiviert

Indikatorauf, gedrückt

Blinkerauf, fokussiert

Indikatoraufwärts, gespiegelt

Indikatoraufwärts, schwebend

Indikatoroben, bearbeitbar

Indikatoroben, editierbar, gedrückt

Indikatoroben, bearbeitbar, fokussiert

Indikatoroben, bearbeitbar, gespiegelt

Indikatoroben, bearbeitbar, schwebend

Indikatornach unten

Indikatorunten, deaktiviert

Indikatorabwärts, gedrückt

Indikatorabwärts, fokussiert

Indikatorabwärts, gespiegelt

Indikatorabwärts, schwebend

Indikatornach unten, bearbeitbar

Indikatornach unten, editierbar, gedrückt

Indikatornach unten, editierbar, fokussiert

Indikatorabwärts, bearbeitbar, gespiegelt

Indikatornach unten, bearbeitbar, schwebend

SwipeDelegateHintergrund

Hintergrunddeaktiviert

Hintergrundgedrückt

Hintergrundfokussiert

Hintergrundschwebte

SwitchAnzeige

Indikatordeaktiviert

Blinkergedrückt

Indikatorgeprüft

Indikatorgeprüft, fokussiert

Indikatormarkiert, schwebend

Indikatormarkiert, gedrückt

Indikatorfokussiert

Indikatorschwebte

Griff

Griffdeaktiviert

Griffgedrückt

SwitchDelegateHintergrund

Hintergrunddeaktiviert

Hintergrundgedrückt

Hintergrundfokussiert

Hintergrundschwebte

Anzeige

Indikatordeaktiviert

Blinkergedrückt

Indikatorgeprüft

Indikatorgeprüft, fokussiert

Indikatormarkiert, schwebend

Indikatormarkiert, gedrückt

Indikatorfokussiert

Indikatorschwebte

Griff

Griffdeaktiviert

TabBarHintergrund

TabButtonHintergrund

Hintergrunddeaktiviert

Hintergrundgedrückt

Hintergrundgeprüft

Hintergrundschwebte

Hintergrunddeaktiviert, markiert

TextAreaHintergrund

Hintergrunddeaktiviert

Hintergrundfokussiert

TextFieldHintergrund

Hintergrunddeaktiviert

Hintergrundfokussiert

ToolBarHintergrund

ToolButtonHintergrund

Hintergrunddeaktiviert, markiert

Hintergrundfokussiert

Hintergrundgedrückt

Hintergrundgeprüft

Hintergrundgeprüft, fokussiert

Hintergrundmarkiert, schwebend

Hintergrundschwebend

ToolSeparatorTrennzeichenhorizontal

Trennzeichenvertikal

ToolTipHintergrund

1 Ein 1x1-Bild mit einer Farbe, das so gestreckt wird, dass es das Steuerelement ausfüllt.

9-Felder-Bilder

Der Imagine-Stil verwendet 9-Patch-Bilder, um den Designern die Kontrolle darüber zu geben, wie ein bestimmtes Element auf eine Größenänderung reagiert. Hier ist ein Beispiel für ein 9-Felder-Bild, das ein Button's background darstellt, zusammen mit einer vergrößerten Version (um die 9-Felder-Linien besser erkennen zu können):

Der Inhalt des Bildes ist 44 Pixel breit und 32 Pixel hoch. Jedes 9-Felder-Bild benötigt an jeder Seite eine ein Pixel dicke Linie (zusammenfassend als "9-Felder-Linien" bezeichnet), so dass die tatsächliche Größe des Bildes 46 Pixel breit und 34 Pixel hoch ist. Beachten Sie, dass die 9-Patch-Linien unabhängig von der Ziel-DPI des Bildes ein Pixel dick sein müssen. Zum Beispiel müssen die 9-Patch-Linien für button-background.9.png und button-background@2x.9.png beide ein Pixel dick sein.

Die 9-Patch-Linien müssen schwarz sein, und die übrigen Bereiche müssen transparent oder weiß sein:

Dehnbare Bereiche

Die 9-Patch-Linien am oberen und linken Rand bestimmen, welche Teile des Bildes bei einer Größenänderung gedehnt werden.

Unten sehen Sie Beispiele für die Änderung der Größe des 9-Felder-Bildes auf das Eineinhalbfache seiner ursprünglichen Größe in verschiedenen Dimensionen:

Beachten Sie, dass die abgerundeten Ecken ihre ursprüngliche Größe beibehalten, da sie sich außerhalb des Bereichs der Linien befinden.

Aufgefüllte Bereiche

Die 9-Patch-Linien am rechten und unteren Rand bestimmen, wie viel Platz für das Steuerelement contentItem zur Verfügung steht, was bedeutet, dass es auch als Steuerung der padding betrachtet werden kann. Ein Diagramm zur Veranschaulichung der Auffüllung finden Sie unter Control Layout.

Nachfolgend finden Sie weitere Beispiele für die Größenänderung des 9-Felder-Bildes, wobei dieses Mal gezeigt wird, wie die 9-Felder-Linien zum Auffüllen funktionieren.

Die contentItem kann innerhalb der schattierten Bereiche so viel Platz einnehmen, wie sie benötigt. Wenn die Auffüllungslinien weggelassen werden, nimmt contentItem so viel Platz ein, wie es braucht, ohne die dehnbaren Bereiche zu überschreiten.

Eingeschobene Bereiche

In manchen Fällen ist es notwendig, dass ein Steuerelement z. B. einen Schlagschatten hat. Wenn wir jedoch der obigen Schaltfläche einen Schlagschatten hinzufügen würden, würde sich dies auf ihre Größe auswirken, was sowohl für das Layout als auch für die Begrenzung der Maus-/Toucheingabe Probleme mit sich bringt.

Einfügebereiche berücksichtigen dies, indem sie dem Steuerelement mitteilen, dass ein bestimmter Bereich des 9-Felder-Bildes außerhalb des Steuerelements liegen soll:

In der Abbildung unten stellt die gestrichelte Linie den anklickbaren Bereich der Schaltfläche sowie den Platz dar, den sie in einem Layout einnehmen wird. Der Schatten ist durch den gestreiften Bereich dahinter gekennzeichnet:

Exportieren von 9-Patch-Bildern

Verschiedene Vektor- und Bitmap-Editoren können verwendet werden, um 9-Patch-Bilder zu erstellen, die für die Verwendung mit dem Imagine-Stil geeignet sind. In den folgenden Abschnitten wird der Exportvorgang für jeden Editor kurz erläutert, und im letzten Abschnitt wird erklärt, wie Sie sicherstellen, dass die exportierten Bilder 9-Patch-konform sind.

Affinity Designer

Siehe die Dokumentation zu den Export-Einstellungen von Affinity.

Adobe Illustrator

Siehe die Dokumentation des Asset-Export-Panels von Adobe.

Adobe Photoshop

Siehe die Dokumentation Generieren von Bild-Assets aus Ebenen von Adobe.

Inkscape

Die Inkscape 9-Patch Export Extension kann verwendet werden, um Assets mit Inkscape zu exportieren.

Skizze

Siehe Sketch's Exporting Dokumentation.

Qt Quick Controls bietet auch ein Plugin für Sketch, das die Dicke der 9-Patch-Linien nach dem Exportieren der Assets automatisch korrigiert. Um diese Datei zu installieren, doppelklicken Sie auf sie. Sobald Sketch bestätigt hat, dass das 9-Patch-Export-Plugin installiert wurde, verarbeitet das Plugin die Bilder automatisch, wenn sie exportiert werden.

Reparieren von 9-Patch-Linien

Beim Export von 9-Patch-Bildern in verschiedenen DPI-Varianten (@2x, @3x, etc.) werden die 9-Patch-Linien in der Regel zusammen mit dem Bild hochskaliert. Es gibt mehrere Möglichkeiten, dies zu beheben, aber die vielleicht einfachste Methode ist die Verwendung des ImageMagick-Werkzeugs mogrify. Das Werkzeug verfügt über die Funktion -shave, mit der Sie das Bild zuschneiden können, um die Dicke der 9-Felder-Linien zu verringern:

mogrify -shave 1x1 -path path/to/images *@2x.9.png
mogrify -shave 2x2 -path path/to/images *@3x.9.png
mogrify -shave 3x3 -path path/to/images *@4x.9.png

Bilder mit normalen DPI-Werten (ohne das Präfix @Nx ) sind davon nicht betroffen, so dass der Befehl nur bei Bildern ausgeführt werden muss, die für Bildschirme mit hohen DPI-Werten bestimmt sind.

Animierte Bilder

Die Formate WebP und GIF für animierte Bilder werden vom Imagine-Stil unterstützt.

Anpassung

Pfad

Der Imagine-Stil ermöglicht die Anpassung des Pfads, der für die Auswahl von Bild-Assets verwendet wird. Der Pfad kann für jedes beliebige Fenster oder Element angegeben werden und wird automatisch auf die untergeordneten Elemente übertragen, genau wie bei fonts. Im folgenden Beispiel werden das Fenster und alle drei Optionsfelder mit dunklen Bildelementen angezeigt (Dateien, die sich in "qrc:/themes/dark" befinden).

import QtQuick 2.12
import QtQuick.Controls 2.12
import QtQuick.Controls.Imagine 2.12

ApplicationWindow {
    visible: true

    Imagine.path: "qrc:/themes/dark"

    Column {
        anchors.centerIn: parent

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

Neben der Angabe des Pfades in QML ist es auch möglich, ihn über eine Umgebungsvariable oder in einer Konfigurationsdatei anzugeben. In QML angegebene Attribute haben Vorrang vor allen anderen Methoden.

Konfigurationsdatei
VariableBeschreibung
PathGibt den Pfad zu dem Verzeichnis an, das die Imagine-Style-Assets enthält. Wird kein Pfad angegeben, werden die integrierten Elemente verwendet.

Zum Beispiel, um einen Pfad zu einem Verzeichnis anzugeben, das im Ressourcensystem gespeichert ist:

[Imagine]
Path=:/imagine-assets

So geben Sie einen relativen Pfad zu einem lokalen Verzeichnis an:

[Imagine]
Path=imagine-assets

Hinweis: Aufgrund einer technischen Einschränkung sollte der Pfad nicht "imagine" heißen, wenn er relativ zur Datei qtquickcontrols2.conf ist.

Weitere Informationen zur Konfigurationsdatei finden Sie unter Qt Quick Controls Konfigurationsdatei.

Umgebungsvariablen
VariableBeschreibung
QT_QUICK_CONTROLS_IMAGINE_PATHGibt den Pfad zu dem Verzeichnis an, das die Imagine-Style-Assets enthält. Wenn nichts angegeben wird, werden die eingebauten Assets verwendet.

Zum Beispiel, um einen Pfad zu einem Verzeichnis anzugeben, das im Ressourcensystem gespeichert ist:

QT_QUICK_CONTROLS_IMAGINE_PATH=:/imagine-assets

So geben Sie einen relativen Pfad zu einem lokalen Verzeichnis an:

QT_QUICK_CONTROLS_IMAGINE_PATH=imagine-assets

Hinweis: Aufgrund einer technischen Einschränkung sollte der Pfad nicht "imagine" heißen, wenn er relativ zur Datei qtquickcontrols2.conf ist.

QT_QUICK_CONTROLS_IMAGINE_SMOOTHSetzen Sie diese Variable auf 1, um eine glatte Skalierung für 9-Patch-Bilder zu ermöglichen. Diese Umgebungsvariable wurde in Qt 6.5 hinzugefügt.

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

Palette

Der Stil Imagine unterstützt die Anpassung der Palette über die Eigenschaft palette und die Datei qtquickcontrols2.conf. Wie bei anderen Stilen ist die genaue palette roles, die der Imagine-Stil verwendet, stilabhängig. Da jedoch der größte Teil des visuellen Erscheinungsbildes von Steuerelementen (z. B. Hintergründe) über Bild-Assets verwaltet wird, haben nur die Rollen, die typischerweise für Text verwendet werden, einen Einfluss.

Schriftart

Benutzerdefinierte Schriftarten können über die Eigenschaft font und die Konfigurationsdatei festgelegt werden.

Abhängigkeit

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

Wenn der Imagine-Stil in eine QML-Datei importiert wird, die immer geladen wird, muss der Imagine-Stil mit der Anwendung bereitgestellt werden, damit die Anwendung unabhängig davon ausgeführt werden kann, mit welchem Stil die Anwendung ausgeführt wird. Durch die Verwendung von Datei-Selektoren können stil-spezifische Anpassungen vorgenommen werden, ohne eine feste Abhängigkeit von einem Stil zu schaffen.

Siehe auch Styling Qt Quick Controls

Dokumentation der angehängten Eigenschaft

Imagine.path: Zeichenkette

Diese angehängte Eigenschaft enthält den Pfad zu den Bild-Assets...

Button {
    Imagine.path: "qrc:/themes/dark"
}

© 2025 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.