Qt Distance Field Generator Handbuch
Wenn die Benutzeroberfläche einer Anwendung viel Text enthält, kann dies bei der ersten Anzeige für den Benutzer zu einer geringen, aber spürbaren Beeinträchtigung der Leistung führen. Dies gilt insbesondere dann, wenn der Text in mehreren verschiedenen Schriftarten dargestellt wird oder eine große Anzahl unterschiedlicher Zeichen enthält (was beispielsweise bei Schriftsystemen wie Hanzi, dem geschriebenen Chinesisch, häufig der Fall ist).
Der Grund dafür ist, dass Qt, um den Text später effizient darzustellen, etwas Zeit darauf verwendet, für jedes der Glyphen grafische Ressourcen zu erstellen, die später wiederverwendet werden. Dies geschieht beim ersten Mal, wenn ein Glyph in der Szene angezeigt wird.
Für fortgeschrittene Benutzer, die die Startleistung optimieren möchten, besteht die Möglichkeit, diesen Schriftart-Cache vorab zu generieren, sofern „Text.QtRendering“ als Rendering-Typ verwendet wird. Mit dem Tool „ Qt Distance Field Generator “ lässt sich der Cache vorab generieren, entweder für alle Glyphen der Schriftarten oder nur für eine Auswahl, von der bekannt ist, dass sie während einer kritischen Phase angezeigt wird.
Hinweis: Dies ist ein Tool, das von fortgeschrittenen Benutzern verwendet werden kann, um ihre Anwendung auf eine Weise zu optimieren, die von Qt nicht automatisch durchgeführt werden kann. Für die meisten gängigen Anwendungsfälle ist das Standardverhalten in Qt ausreichend.

Allgemeine Verwendung
Verwenden Sie das „ Qt Distance Field Generator “ wie folgt:
- Laden Sie eine Schriftartdatei über „Datei > Schriftart öffnen “. Wenn die Schriftartdatei groß ist, kommt es zu einer kurzen Wartezeit, während die Schriftarten eingelesen und die Abstandsfelder generiert werden.
- Sobald dies abgeschlossen ist, wählen Sie die Glyphen aus, die Sie im vorab generierten Cache speichern möchten. Idealerweise sollten dies die Glyphen sein, die von Ihrer Anwendung während einer leistungskritischen Phase verwendet werden, damit sich die vorzeitige Generierung sichtbar auf die Leistung auswirkt.
- Klicken Sie abschließend auf „Speichern“, um die neue Schriftartdatei zu speichern.
Hinweis: Um eine Schriftart auf diese Weise zu ändern, müssen Sie sicherstellen, dass die Lizenz dies nicht untersagt.
Glyphen auswählen
Glyphen können auf verschiedene Arten ausgewählt werden. Am einfachsten ist es, auf das Glyphenraster zu klicken, um eine bestimmte Glyphe auszuwählen. Sie können die Auswahl aufheben, indem Sie erneut auf die Glyphe klicken.
Darüber hinaus können Sie die Liste der Unicode-Bereiche verwenden, um alle Glyphen auszuwählen, die den Zeichen in einem bestimmten Bereich entsprechen.
Wenn Sie sicherstellen möchten, dass die Glyphen für eine bestimmte Zeichenfolge aus Ihrer Benutzeroberfläche vorab generiert werden, können Sie die Funktion „Auswählen > Zeichenfolge auswählen “ verwenden.
Hinweis: Bei denbeiden letztgenannten Auswahlmethoden basieren die Ergebnisse auf der CMAP-Tabelle der Schriftart, und es findet keine Formung statt.
Verwendung der Datei
Sobald du eine Datei vorbereitet hast, besteht der nächste Schritt darin, sie in deine Anwendung zu laden. Die gespeicherte Datei ist eine Kopie der ursprünglichen Schriftartdatei und kann daher genauso verwendet werden wie jede andere Schriftartdatei. Zudem verfügt sie über eine spezielle Schrifttabelle, die von Qt erkannt wird und dazu dient, den Glyphen-Cache vorab zu füllen, wenn die Schriftart in „ Qt Quick “ verwendet wird.
Sie können die Schriftart beispielsweise mithilfe eines ` FontLoader ` in Ihrem Anwendungscode laden. Wenn sie zur Anzeige von Text in einem ` Text `-Element verwendet wird, bei dem ` renderType ` auf ` Text.QtRendering ` (Standard) gesetzt ist, wird der vorab generierte Cache geladen und verwendet.
Leistungsmessung
Um die Auswirkungen der Erzeugung von Distanzfeldern auf Ihre Anwendung zu analysieren, können Sie die Umgebungsvariable „ QT_LOGGING_RULES “ auf „ "qt.scenegraph.time.glyph=true" “ setzen.
Bei der Verwendung normaler Schriftarten ohne integrierten Cache erhalten Sie eine Ausgabe, die in etwa so aussieht:
qt.scenegraph.time.glyph: distancefield: 50 glyphs prepared in 16ms, rendering=15, upload=1Wenn Sie alle verwendeten Glyphen vorab generiert haben, sieht die Ausgabe stattdessen etwa so aus:
qt.scenegraph.time.glyph: distancefield: 50 pre-generated glyphs loaded in 2msIn diesem Fall wurde die Zeit, die für die Vorbereitung der zur Darstellung in der Anwendung verwendeten Distanzfelder benötigt wird, von einem ganzen Frame (16 ms) auf 2 ms reduziert. Anhand der Ausgabe können Sie außerdem überprüfen, ob alle verwendeten Glyphen aus dem Cache geladen werden, und aus Sicht der Leistung problematische Phasen im Lebenszyklus Ihrer Anwendung identifizieren.
© 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.