Zusätzlich zu den anderen Optionen bereits erwähnt, gibt es Qt.application.font
auch:
Label {
font.pixelSize: Qt.application.font.pixelSize * 0.8
}
Diese schreibgeschützte Eigenschaft enthält die Standardanwendung Schrift als von QGuiApplication::font()
zurückgegeben.
Die commit message for the change erwähnt andere Optionen, die zu dem Zeitpunkt in Betracht gezogen wurden:
- „
<h3>Large text</h3>
“ - fügt unter dem Text besonders viel Platz, da es ein HTML-Element ist, also nicht wirklich nützlich, wenn Sie eine wollen Anständiges Layout.
- Kodierung einer Pixelgröße. Funktioniert in Kombination mit Qt :: AA_EnableHighDpiScaling einwandfrei und solange Sie die korrekte Größe erraten, die für jedes Gerät/Display, das Sie anvisieren, funktioniert. Funktioniert nicht ohne Einstellung Qt :: AA_EnableHighDpiScaling.
- Verwenden von FontMetrics/TextMetrics. Funktioniert gut, ist aber ein bisschen ausführlich.
- Verwenden Sie ein leeres Textelement. Erstellt ein unnötiges Element. Wurde von FontMetrics/TextMetrics ersetzt.
- defaultPixelSize/implizitePixelSize und defaultPointSize/implicitPointSize. Es gibt bereits font-related Eigenschaften außerhalb der Schriftart gruppierten Eigenschaft, so dass dies nicht fehl am Platz wäre, aber die API ist bereits ziemlich groß.
Wenn Sie wirklich die Schriftgröße auf der speziellen Kontrolle müssen zur Basis, die Sie verwenden, ist die einzige Art und Weise gewährleistet eine „leere“/„default konstruierten“ Instanz dieser Steuerelement zu erstellen:
Button {
id: dummyButton
}
Button {
font.pixelSize: dummyButton.font.pixelSize * 0.8
}
Dies ist, weil jeder Stil verschiedene Schriftgrößen für verschiedene Arten von Steuerelementen hat. Siehe zum Beispiel die Material style's theme code.
Hallo, im Zusammenhang mit der 'Controls' dies werden Sie keine zuverlässigen Ergebnisse, wie zum Beispiel könnten Sie ein' ApplicationWindow' als Root-Objekt verwenden und eine Schriftgröße there.This gesetzt würde das 'Label' propagiert werden aber nicht zur Nichtkontrolle 'FontMetrics'. Daher ist die Standardschriftgröße des "Label" und des "FontMetrics" nicht gleich notwendig - und damit auch nicht der 0.8te Faktor. Siehe [** hier **] (https://doc.qt.io/qt-5/qml-qtquick-controls2-control.html#font-prop) – derM
@derM, das nützlich ist, wenn es nicht an ein Wurzelelement gebunden ist . Gibt es Nicht-Root-Elemente, die das können? Über die 'FontMetrics': Ich mag es, alles (auch das Nicht-Text-Zeug) relativ dazu zu definieren. – Velkan
Sie können die angehängte ['ApplicationWindow'] (https://doc.qt.io/qt-5/qml-qtquick-controls2-applicationwindow.html#window-attached-prop) Eigenschaft verwenden, um die Schriftart in der Groß-/Kleinschreibung zu erhalten auf die @derM verweist, und dann auf 'fontMetrics'. ZB: 'font: ApplicationWindow.window.font' Obwohl verschiedene Steuerelemente unterschiedliche Standardgrößen haben, funktioniert dies nur für bestimmte Steuerelemente: http://code.qt.io/cgit/qt/qtquickcontrols2.git/tree/src/imports /controls/material/qquickmaterialtheme.cpp#n67 – Mitch