svgtoqml
svgtoqml
ist ein Kommandozeilenwerkzeug, das mit Qt ausgeliefert wird und ein SVG-Dokument in eine QML-Datei konvertiert. Diese QML-Datei kann dann als Komponente in Qt Quick Anwendungen verwendet werden. Das Wettervorhersage-Beispiel enthält mehrere QML-Dateien, die mit diesem Tool erzeugt wurden.
Überblick
svgtoqml
konvertiert eine SVG-Datei in eine QML-Datei, die Qt Quick Primitive verwendet. Da Qt Quick skalierbare Vektorgrafiken unterstützt, ist das resultierende Element, soweit dies möglich ist, stufenlos transformierbar. Grundsätzlich unterstützt das Tool die meisten statischen Merkmale des SVG Tiny 1.2-Profils. Bestimmte zusätzliche Funktionen werden unterstützt, die von Fall zu Fall festgelegt werden. Interaktive Funktionen und Animationen werden nicht unterstützt.
Verwendung
Die grundlegende Verwendung von svgtoqml
besteht darin, eine Eingabedatei und eine Ausgabedatei bereitzustellen: svgtoqml input.svg output.qml
. Damit wird die Datei input.svg
gelesen und in die entsprechende Szene Qt Quick in output.qml
umgewandelt, die dann als Teil einer Anwendung Qt Quick verwendet werden kann.
Darüber hinaus werden die folgenden Optionen unterstützt:
Option | Beschreibung |
---|---|
-Urheberrechtsvermerk <Zeichenfolge> | Fügt <String> als Kommentar am Anfang der erzeugten Datei ein. |
-c, -kurven-renderer | Aktiviert das Kurvenrenderer-Backend für Qt Quick Shapes. Dies ermöglicht glatte, antialiasing-fähige Formen in der Szene ohne Multi-Sampling, aber mit einigen zusätzlichen Kosten. |
-p, -optimieren-Pfade | Ermöglicht die Optimierung von Pfaden vor der Übergabe an die QML-Datei, wodurch sie möglicherweise schneller geladen und später gerendert werden können. |
-outline-stroke-mode | Zeichnet den Umriss (Kontur) der gefüllten Form anstelle des ursprünglichen Pfades. |
-t, -Typ-Name <String> | Anstelle von Shape wird bei der Ausgabe der Typname <String> verwendet. Dies ermöglicht die Verwendung eines benutzerdefinierten Elements, um das Standardverhalten von Shape Elementen zu überschreiben. |
-v, -view | Zeigt eine Vorschau des Qt Quick Elements an, wie es erzeugt wird. |
Vergleich mit anderen Optionen
Es gibt mehrere Optionen für die Einbindung von SVG-Inhalten in Qt Quick. Im Folgenden wird ein Überblick darüber gegeben, wo svgtoqml
in die Geschichte passt.
Vergleich mit Qt SVG
Qt SVG ist ein Modul, das einen Parser und Software-Renderer für SVG-Dateien bereitstellt. Darüber hinaus enthält es ein Bildlade-Plugin, so dass SVG-Dateien direkt über das Element Image in Qt Quick geladen werden können. Das SVG wird dann gerastert und in einer bestimmten Größe zwischengespeichert, so dass das erneute Zeichnen recht kostengünstig ist. Wenn Sie jedoch in das Bild hineinzoomen, ohne es zu verpixeln, müssen Sie es in einer anderen Größe neu laden, was wiederum teuer sein kann.
svgtoqml
(und die Komponente VectorImage ) sind alternative Möglichkeiten, denselben Inhalt zu rendern. Nach dem Laden in Qt Quick können die Transformationen geändert werden, während die Geometriedaten, die zum Rendern der Szene benötigt werden, im GPU-Speicher verbleiben. So kann das Vektorbild in verschiedenen Maßstäben mit sehr geringem Overhead neu gezeichnet werden.
Wenn sich die Bildgröße während der Lebensdauer der Anwendung nicht ändert, ist es jedoch effizienter, das SVG als Image zu laden. In diesem Fall, wenn das SVG immer in einer kleinen Teilmenge der möglichen Größen gerendert wird, sollten Sie in Erwägung ziehen, es in ein Bildformat zu rastern, das effizienter zu laden ist, wie z. B. PNG
.
Vergleich mit VectorImage
Die Komponente VectorImage bietet die gleiche Grundfunktionalität wie svgtoqml
, aber anstatt die Szene Qt Quick als QML-Datei vorzuerzeugen, wird die Szene zur Laufzeit erstellt. Dies ermöglicht das Laden von SVG-Dateien, die zur Erstellungszeit nicht bereitgestellt werden, und bietet somit mehr Flexibilität. Die Vorgenerierung der Szenen mit svgtoqml
ermöglicht es, die Szene zu optimieren, bevor sie geladen wird. Für Dateien, die zum Zeitpunkt der Erstellung verfügbar sind, ist svgtoqml
daher die bevorzugte Option.
Vergleich mit PathSvg
Die Komponente PathSvg ist Teil des Qt Quick Shapes Moduls. Sie bietet eine Möglichkeit, Pfade mit der von SVG verwendeten Syntax zu definieren, wobei die Kontrollpunkte eines Pfades als String angegeben werden. Sie unterstützt nicht das Laden von SVG-Dateien und ist daher keine direkte Alternative zu svgtoqml
. Wenn ein komplexes SVG eine bestimmte Form enthält, die von der Anwendung benötigt wird, kann es bequemer sein, diese Pfadbeschreibung in PathSvg zu kopieren, als die vollständige Datei zu erzeugen.
© 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.