QML-Steuerelemente werden durch die Implementierung ihrer jeweiligen Stile gestaltet, zum Beispiel für Button
müssen Sie ein ButtonStyle
implementieren.
Wie für die tatsächliche "Gruppierung" Sie können nur verwenden QtObject
property QtObject textStyles : QtObject {
property FontLoader mainTitle : FontLoader {...}
....
}
Sie können auch gestylt Komponenten als dedizierte Typen erweitern:
// StyledText.qml
Text {
font.family: someFont
font.pixelSize: fontSize
color: someColor
font.italic: true
font.letterSpacing: -1
...
}
Und dann verwenden Sie das nur durch StyledText {}
anstatt wiederholt regelmäßige Elemente.
Wo/in welcher Datei platziere ich das QtObject-Snippet? Ich verstehe nicht was // StyledText.qml ist oder was ein FontLoader ist.
Wenn Sie es in Ihrer gesamten Anwendung verfügbar sein sollen, können Sie es als eine Eigenschaft Ihres Root-Objekts in main.qml
setzen, dank dynamischem Scoping textStyles
wird von jeder anderen Datei in Ihrem Projekt beheben. Sie können auch ganze Komponentenstile hinzufügen und im Projekt freigeben.
StyledText.qml
StyledText.qml
ist nur eine zusätzliche qml-Datei, die Sie Ihrem Projekt hinzufügen, können Sie nur mit der Implementierung seiner Körper in einer vorhandenen qml-Datei, dann Rechtsklick auf und Refactoring auswählen -> Komponente in separate Datei verschieben.
Eine FontLoader
ist nur eine reguläre QML-Komponente, die Sie verwenden können, um bestimmte Schriftarten zu laden und als Schriftquelle für Text zu verwenden. Sie müssen das nicht verwenden, Sie können auch Schriftfamilien aus Ihren Systemschriften verwenden. Der Font Loader ist nützlich für Schriften, die Sie mit Ihrer Anwendung bündeln.
Danke, ich habe Beispiele wie diese gesehen, aber ich weiß nicht, wie man sie implementiert. Wo/in welcher Datei platziere ich das QtObject-Snippet? Ich verstehe nicht was // StyledText.qml ist oder was ein FontLoader ist. Ich weiß, dass ich einen ButtonStyle, einen CheckBoxStyle etc. für jeden Steuerungstyp implementieren kann. Was ich zu tun hoffte, war zu vermeiden, diesen Code für jede Art von Steuerelement zu wiederholen, und stattdessen in der Lage zu sein, eine Art von Enum zu definieren, die ich dann für jede Art von Steuerelement einstellen und die Schriftart- und Farbeigenschaften so einstellen lassen kann. – MusiGenesis
@MusiGenesis siehe Antwort update – dtech
Sorry für die Dichte, aber ich verstehe immer noch nicht, was ich wo setzen sollte (das ist eine geerbte App und ich verstehe nicht wirklich, wie es strukturiert ist). Ich habe nirgendwo eine main.qml-Datei. Es klingt wie dein zweites Beispiel, was zu tun ist (wenn es auch nur zwei Beispiele gibt, bin ich mir nicht sicher), was ich machen möchte. Ich habe eine Datei mit dem Namen LoginScreen.qml - setze ich den Text {} Block, den Sie erwähnen, in diese Datei oberhalb des bereits vorhandenen Fensters {}? Wie referenziere ich diesen Block von woanders in der Datei? – MusiGenesis