Auf dieser Seite

Vektorgrafikformate in Qt

Qt unterstützt zahlreiche Standard-Dateiformate zum Laden grafischer Daten, sodass Anwendungen Inhalte importieren können, die mit anderen Tools erstellt wurden.

Dieser Artikel konzentriert sich auf Vektorgrafiken und erläutert, welche Aspekte bei der Erstellung von Vektorgrafik-Inhalten für die Verwendung in einer Qt-Anwendung zu beachten sind.

Hinweis: Allgemeine Informationenzur Unterstützung von 2D-Grafikendurch Qt finden Siein der Dokumentation „2D-Grafiken in Qt“.

Dateiformat: SVG

SVG-Dateien können auf zwei verschiedene Arten in Qt Quick: Entweder als softwaregerastertes Bild mithilfe der Image-Komponente oder mittels hardwarebeschleunigtem Rendering mit „ VectorImage “ (einschließlich einer vorzeitigen Konvertierung der Datei mit svgtoqml).

Darüber hinaus bietet „ QSvgRenderer “ allgemeinen Zugriff auf den Software-Rasterizer. „ QSvgWidget “ und „ QGraphicsSvgItem “ stellen komfortable APIs zur Integration von SVG-Inhalten in Qt Widgets Anwendungen.

Grundsätzlich unterstützt Qt die statischen Funktionen des SVG 1.2 Tiny-Profils. Eine detaillierte Liste der von diesem Profil unterstützten Funktionen ist in der SVG 1.2 Tiny-Spezifikation verfügbar.

Darüber hinaus werden bestimmte erweiterte Funktionen unterstützt.

Interaktive Funktionen von SVG werden nicht unterstützt, aber Interaktionen lassen sich problemlos entweder Qt Quick oder Qt Widgets. Einige spezifische Animationstypen werden ebenfalls unterstützt, entweder mithilfe des SMIL-Formats oder von CSS-Keyframes.

Im Folgenden finden Sie eine allgemeine Auflistung der unterstützten und nicht unterstützten Funktionen, um einen Überblick darüber zu geben, was zu erwarten ist. Nicht unterstützte Funktionen werden so weit wie möglich ignoriert, sodass SVG-Dateien, die auf nicht unterstützte Funktionen angewiesen sind, zwar weiterhin angezeigt werden, jedoch möglicherweise Lücken oder Fehler aufweisen.

TransformationenUnterstützt
Position👍
Skalierung👍
Rotation👍
Schräglage👍
FormenUnterstützt
Ellipse/Kreis👍
Rechteck👍
Polylinien und Polygone👍
Bézier-Pfade👍
Markierungen👍
Symbole👍
Darstellbare FormenUnterstützt
Füllung👍
Kontur👍
Linearer Farbverlauf👍
Radialer Farbverlauf👍
Konischer Farbverlauf👍
Muster👍
Farbverlaufs-Strich👍
Strichenden👍
Strichverbindungen👍
Linienstile (gestrichelt usw.)👍
Dekorative Linien👍
TextUnterstützt
Spannen👍
Glyphen👍
NachbearbeitungseffekteUnterstützt
Masken👍
feColorMatrix👍
feFlood👍
feOffset👍
feGaussianBlur👍
feMerge👍
Verbleibende Filter🚫
CSS-AnimationenUnterstützt
Farben👍
Farbverläufe👍
Deckkraft👍
Transformationen👍
Pfadversatz👍
Bewegungspfade👍
Beschleunigungs- und Abbremskurven👍
Übrige Eigenschaften🚫
SMIL-AnimationenUnterstützt
animateTransform👍
animateColor👍
animate🚫
animateMotion🚫
set🚫
SonstigesUnterstützt
Rasterbilder👍
Elementverwenden 👍
Elementumschalten 👍
Schnittpfade🚫
Multimedia🚫
Skripting🚫
Verknüpfung🚫

Dateiformat: Lottie

Ähnlich wie bei SVG gibt es in Qt verschiedene Möglichkeiten, Dateien im Lottie-Format zu laden.

Der Typ „ LottieAnimation “ lädt ein Bild und zeigt es mithilfe eines Software-Rasterisierers an, ähnlich wie es „ QSvgRenderer “ für SVG tut.

Darüber hinaus ist mit „ VectorImage “ und dem Tool „lottietoqml“ eine hardwarebeschleunigte Darstellung möglich.

vectorimageformats Um Lottie-Dateien mit „ VectorImage “ nutzen zu können, muss das im Qt Lottie Animation Modul enthalten ist, muss zusammen mit der Anwendung bereitgestellt werden. Zudem muss die Eigenschaft „ assumeTrustedSource “ des „ VectorImage “-Plugins auf „ true “ gesetzt werden. Detaillierte Steuerungsmöglichkeiten für die Wiedergabe der Animation finden Sie unter „ LottieVectorImageController “.

Mit dem Tool „lottietoqml“ können Lottie-Quelldateien vorab in QML konvertiert werden. Ein Beispiel hierfür finden Sie im Beispiel „lottietoqml“.

Im Folgenden finden Sie eine Liste der wichtigsten Funktionen, die vom Typ „ LottieAnimation “ (Software-Rasterisierer) und von „ VectorImage “ unterstützt werden (einschließlich der Vorabkonvertierung von Dateien mit lottietoqml).

TransformationenUnterstützt
Position👍
Skalierung👍
Rotation👍
Schräglage👍
Deckkraft👍
Ankerpunkt👍
Automatische Ausrichtung👍
FormenUnterstützt
Ellipse/Kreis👍
Rechteck👍
Abgerundetes Rechteck👍
Polystar👍
Bézier-Kurven👍
Beschnittene Pfade👍
Form darstellbarUnterstützt
Füllung👍
Kontur👍
Linearer Farbverlauf👍
Radialer Farbverlauf👍
Farbverlaufs-Kontur👍
Strichkappen👍
Strichverbindungen👍
Linienstile (gestrichelt usw.)👍
TextUnterstützt
Füllung👍
Kontur🚫
Schriftarten👍
Glyphen👍
NachbearbeitungseffekteUnterstützt
Alpha-Maskierungen👍
Luminanz-Matten👍
Ebeneneffekte🚫
Zusammengeführte PfadeUnterstützt
Hinzufügen👍
Subtrahieren🚫
Schnittmenge🚫
MaskenUnterstützt
Maskenpfad👍
Vereinigung👍
Zusätzliche Operationen🚫
AnimationenUnterstützt
Farben👍
Farbverläufe👍
Deckkraft👍
Transformationen👍
Pfadinterpolation👍
Zuschneiden👍
Markierungen🚫
Zusammengeführte Pfade🚫
Verbleibende Eigenschaften🚫
Beschleunigungs- und Abbremskurven👍
Zeitdehnung👍
Zeit-Remapping👍
SonstigesUnterstützt
Rasterbilder👍
Vorkompilierte Ebenen👍
Ausdrücke🚫

Dateiformat: Schriftartdateien als Vektorbildformat

Neben herkömmlichen Formaten für Vektorgrafiken wie SVG ist es auch möglich, benutzerdefinierte Schriftartdateien zu verwenden, in denen Vektorgrafiken als Glyphen gespeichert sind.

Dies hat den Vorteil, dass einfache Illustrationen in Textbeschriftungen eingebettet werden können, wobei die typografischen Eigenschaften denen von Text ähneln. Dies wiederum kann die Ausrichtung der Bilder zum Text erleichtern.

Die Verwendung von Schriftartdateien zu diesem Zweck kann zudem eine bequeme Möglichkeit sein, umfangreiche Icon-Bibliotheken zu verteilen sowie Designs bereitzustellen, die zur Laufzeit ausgetauscht werden können.

Allerdings ist die Verwendung von Schriftarten in Qt für die Darstellung von Text optimiert, sodass bei der Nutzung von Icon-Schriftarten als Alternative zu speziellen Vektorgrafikkomponenten wie VectorImage einige Aspekte zu beachten sind.

Zunächst einmal werden Farb-Schriftarten immer in der angegebenen Pixelgröße vorgerastert. Das bedeutet, dass das Anwenden von Transformationen auf solche Textelemente zu Skalierungsartefakten führt. Für Illustrationen, die beispielsweise ein Zoomen erfordern, ist die Verwendung von VectorImage vorzuziehen.

Die Verwendung der speziellen Komponenten ist auch für alle animierten Vektorgrafiken vorzuziehen. Zwar ermöglicht die Erweiterung des variablen Schriftformats Morphing-Animationen, doch ist das Schrift-System in Qt nicht für diesen Einsatzzweck optimiert. Daher ist die Animation der variablen Achsen einer Schrift weniger effizient als die Verwendung eines anderen Vektorgrafikformats.

Für animierte und/oder mehrfarbige Vektorgrafiken sollte daher in der Regel ein Format wie SVG bevorzugt werden. Bei einfarbigen, statischen Grafiken ist die Verwendung einer Schriftart eine Option mit gewissen Vorteilen.

© 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.