Sur cette page

svgtoqml

svgtoqml est un outil en ligne de commande fourni avec Qt qui convertit un document SVG en un fichier QML. Ce fichier QML peut ensuite être utilisé comme composant dans les applications Qt Quick. L'exemple des prévisions météorologiques comprend plusieurs fichiers QML générés à l'aide de cet outil.

Vue d'ensemble

Le site svgtoqml convertit un fichier SVG en un fichier QML qui utilise les primitives Qt Quick. Étant donné que Qt Quick prend en charge les graphiques vectoriels évolutifs, l'élément résultant sera transformable en douceur dans la mesure du possible. L'outil prend en charge la plupart des caractéristiques statiques du profil SVG Tiny 1.2. Certaines fonctionnalités supplémentaires sont prises en charge, déterminées au cas par cas. Les fonctions interactives et les animations ne sont pas prises en charge.

Utilisation

L'utilisation de base de svgtoqml consiste à fournir un fichier d'entrée et un fichier de sortie : svgtoqml input.svg output.qml. Celui-ci lira le fichier input.svg et le convertira en la scène Qt Quick correspondante dans output.qml, qui peut ensuite être utilisée dans le cadre d'une application Qt Quick.

En outre, il prend en charge les options suivantes :

OptionDescription de l'option
--no-assume-trusted-sourceIndique que l'entrée est un fichier non fiable et que des vérifications et des restrictions supplémentaires doivent être activées. Par défaut, le fichier SVG sera analysé avec l'option AssumeTrustedSource option. Le passage de cet argument désactivera cette option.
--copyright-statement <string>Ajoute <chaîne> comme commentaire au début du fichier généré.
-c, --curve-rendererActive le moteur de rendu de courbes pour Qt Quick Shapes. Cela permet d'obtenir des formes lisses et anticrénelées dans la scène sans multi-échantillonnage, mais à un coût supplémentaire.
-a, --asynchronous-shapesActive le mode {QtQuick.Shapes::Shape::asynchronous}{asynchrone} sur tous les éléments Shape dans la scène générée. Cela peut améliorer l'utilisation de l'unité centrale et la réactivité.
-p, --optimize-pathsPermet d'optimiser les trajectoires avant de les enregistrer dans le fichier QML, ce qui peut les rendre plus rapides à charger et à rendre ultérieurement.
--outline-stroke-modeTracer le contour de la forme remplie au lieu du chemin original.
-t, --type-name <string>Au lieu de Shape, la sortie utilisera le nom de type <string>. Cela permet d'utiliser un élément personnalisé pour remplacer le comportement par défaut des éléments Shape.
-v, --viewAffiche un aperçu de l'élément Qt Quick tel qu'il sera généré.

L'outil peut être invoqué automatiquement à partir de la compilation en utilisant la fonction cmake qt_target_qml_from_svg().

Comparaison avec d'autres options

Il existe de nombreuses options pour inclure du contenu SVG dans Qt Quick. Ce qui suit donne un aperçu de la place de svgtoqml dans l'histoire.

Comparaison avec Qt SVG

Qt SVG est un module qui fournit un analyseur syntaxique et un moteur de rendu logiciel pour les fichiers SVG. En outre, il comprend un plugin de chargement d'images, de sorte que les fichiers SVG peuvent être chargés directement par l'élément Image dans Qt Quick. Le SVG sera alors tramé et mis en cache à une taille spécifiée, et le redessiner ne coûtera pas cher. Mais un zoom sur l'image sans pixellisation impliquera de la recharger à une taille différente, ce qui peut s'avérer coûteux.

svgtoqml (et le composant VectorImage ) sont des moyens alternatifs de rendre le même contenu. Une fois chargées dans Qt Quick, les transformations peuvent être modifiées tout en conservant les données géométriques nécessaires au rendu de la scène dans la mémoire du GPU. Ainsi, l'image vectorielle peut être redessinée à différentes échelles avec très peu de frais généraux.

Si la taille de l'image ne change pas pendant la durée de vie de l'application, le chargement du SVG en tant que Image sera plus efficace. Dans ce cas, si le SVG est toujours rendu à un petit sous-ensemble de tailles possibles, envisagez de le pré-rastériser dans un format d'image plus efficace à charger, tel que PNG.

Comparaison avec VectorImage

Le composant VectorImage offre les mêmes fonctionnalités de base que svgtoqml, mais au lieu de prégénérer la scène Qt Quick sous la forme d'un fichier QML, il crée la scène au moment de l'exécution. Cela permet de charger des fichiers SVG qui ne sont pas fournis au moment de la construction et offre donc une plus grande flexibilité. La prégénération des scènes avec svgtoqml permet d'optimiser la scène avant qu'elle ne soit chargée. Ainsi, pour les fichiers qui sont disponibles au moment de la construction, svgtoqml est l'option préférée.

Comparaison avec PathSvg

Le composant PathSvg fait partie du module Qt Quick Shapes . Il permet de définir des chemins d'accès à l'aide de Il permet de définir des chemins avec la syntaxe utilisée par SVG, où les points de contrôle d'un chemin sont spécifiés sous la forme d'une chaîne de caractères. Il ne prend pas en charge le chargement des fichiers SVG et n'est donc pas une alternative directe à svgtoqml. Si un SVG complexe contient une forme spécifique nécessaire à l'application, il peut être plus pratique de copier cette description de chemin dans PathSvg que de générer le fichier complet.

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