Ich habe ein QtQuick/QML 5.6 Projekt, wo ich 45 .ttf
Dateien laden muss, die Gewichtsvariationen von verschiedenen (verwandten) Schriftfamilien darstellen.Laden Sie viele Schriftartenvariationen in QML
Zum Beispiel, hier ist eine Teilmenge der Schriftdateien (drei Gewichte für zwei Familien):
- EncodeSans-Thin.ttf
- EncodeSans-Regular.ttf
- EncodeSans-Bold.ttf
- EncodeSansNarrow-Thin.ttf
- EncodeSansNarrow-Regular.ttf
- EncodeSansNarrow-Bold.ttf
ich alle 45 .ttf
Dateien in ein .qrc
in meinem Projekt hinzugefügt habe, aber wenn ich versuche, die Schriftfamilie zu verwenden, funktioniert es nicht:
Text { text:"So Thin"; font.family:"Encode Sans"; font.weight:Font.Thin }
Text { text:"Fatty"; font.family:"Encode Sans"; font.weight:Font.Bold }
Wenn ich eine
einzige Schriftart hinzufügen Lader für eine Schriftart in jeder Familie, aber es funktioniert, für alle Gewichts Variationen dieser Schrift
FontLoader { source:"qrc:/fonts/EncodeSans-Regular.ttf" }
FontLoader { source:"qrc:/fonts/EncodeSansNarrow-Regular.ttf" }
Text { text:"So Thin"; font.family:"Encode Sans"; font.weight:Font.Thin }
Text { text:"Fatty"; font.family:"Encode Sans"; font.weight:Font.Bold }
ich davon überrascht bin. Es scheint auf jeden Fall
EncodeSans-Thin.ttf
für das dünne Gewicht und
EncodeSans-Bold.ttf
für das kühne Gewicht zu verwenden, obwohl diese Dateien in keiner
FontLoader
erwähnt.
Edit: der obige Code funktioniert nicht. Aufgrund eines separaten Fehlers weiß ich jetzt, dass Font.Thin
nie funktionierte (es wurde das Regular-Gewicht angezeigt), und es war möglich, dass der Text-Renderer die Fettschrift simulierte.
Soll ich meinem Projekt 45 FontLoader
hinzufügen, einen für jeden TTF? Oder gibt es eine Möglichkeit, alle TTF ohne Notwendigkeit für FontLoader
geladen werden?
Oder tun Sie es einfach in C++? 'QDirIterator it (":/fonts/*. Ttf "); while (it.hasNext()) QFontDatabase :: addApplicationFont (it.next()); ' – peppe
@peppe Danke für den Code, der hilfreich sein kann. Ich würde jedoch lieber bei reinem QML bleiben. – Phrogz
Wie Sie vielleicht in meiner Antwort auf Ihre andere Frage qml Schrift finden, würde ich sagen oben Vorschlag ist ein Weg zu gehen, so ist leider reine QML-Schriftart-Unterstützung in den meisten Fällen unlösbare Schmerzen ... – evilruff