Sur cette page

svgtoqml

svgtoqml est un outil en ligne de commande fourni avec Qt qui convertit un document SVG en fichier QML. Ce fichier QML peut ensuite être utilisé comme composant dans des applications « Qt Quick ». L’exemple « Weather Forecast » comprend plusieurs fichiers QML qui ont été générés à l’aide de cet outil.

Présentation

svgtoqml convertit un fichier SVG en un fichier QML utilisant les primitives Qt Quick. Étant donné qu’ Qt Quick prend en charge les graphiques vectoriels évolutifs, l’élément résultant pourra être transformé en douceur dans la mesure du possible. Par défaut, l’outil prend en charge la plupart des fonctionnalités statiques du profil SVG Tiny 1.2. Certaines fonctionnalités supplémentaires sont prises en charge, au cas par cas. Les fonctionnalités 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. Cela permettra de lire le fichier input.svg et de le convertir en une scène Qt Quick correspondante au format output.qml, qui pourra ensuite être utilisée dans le cadre d’une application Qt Quick.

De plus, il prend en charge les options suivantes :

OptionDescription
--no-assume-trusted-sourceIndique que le fichier d’entrée n’est pas fiable et que des vérifications et 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ésactive cette option.
--copyright-statement <string>Ajoute <chaîne> en tant que commentaire au début du fichier généré.
-c, --curve-rendererActive le moteur de rendu des courbes pour Qt Quick Shapes. Cela permet d’obtenir des formes lisses et anti-aliasées dans la scène sans multi-échantillonnage, mais au prix d’une légère perte de performance.
-a, --asynchronous-shapesActive le mode {QtQuick.Shapes::Shape::asynchronous}{asynchronous} sur tous les éléments Shape de la scène générée. Cela peut améliorer l’utilisation du processeur et la réactivité.
-p, --optimize-pathsActive l’optimisation des chemins avant leur enregistrement dans le fichier QML, ce qui peut accélérer leur chargement et leur rendu ultérieurs.
--outline-stroke-modeTrace le contour (ligne de contour) de la forme remplie au lieu du tracé d’origine.
-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, --viewAfficher un aperçu de l'élément « Qt Quick » tel qu’il sera généré.

L'outil peut être lancé automatiquement depuis la compilation à l'aide de la fonction CMake qt_target_qml_from_svg().

Comparaison avec d’autres options

Il existe plusieurs options pour inclure du contenu SVG dans l’ Qt Quick. Ce qui suit donne un aperçu de la place qu’occupe svgtoqml dans ce contexte.

Comparaison avec Qt SVG

Qt SVG est un module qui fournit un analyseur syntaxique et un moteur de rendu logiciel pour les fichiers SVG. De plus, il inclut un plugin de chargement d’images, ce qui permet aux fichiers SVG d’être chargés directement par l’élément ` Image ` dans ` Qt Quick`. Le SVG sera alors rastérisé et mis en cache à une taille spécifiée, et son rafraîchissement sera relativement peu coûteux. Cependant, zoomer sur l’image sans perte de qualité impliquera de la recharger à une taille différente, ce qui peut s’avérer coûteux en ressources.

svgtoqml (et le composant ` VectorImage `) constituent des méthodes alternatives pour afficher le même contenu. Une fois chargé 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 en mémoire GPU. Ainsi, l’image vectorielle peut être redessinée à différentes échelles avec très peu de surcoût.

Si la taille de l’image ne change pas pendant la durée de vie de l’application, le chargement du SVG en tant qu’ Image sera toutefois plus efficace. Dans ce cas, si le SVG est toujours affiché dans un petit sous-ensemble de tailles possibles, envisagez de le pré-rastrifier 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 forme de fichier QML, il crée la scène lors de l’exécution. Cela permet de charger des fichiers SVG qui ne sont pas fournis au moment de la compilation et offre ainsi davantage de flexibilité. La pré-génération des scènes avec svgtoqml permet d’optimiser la scène avant son chargement. Ainsi, pour les fichiers disponibles au moment de la compilation, svgtoqml est l’option recommandée.

Comparaison avec PathSvg

Le composant PathSvg fait partie du Qt Quick Shapes module. Il permet de définir des tracés à l’aide de la syntaxe utilisée par le format SVG, où les points de contrôle d’un tracé sont spécifiés sous forme de chaîne de caractères. Il ne prend pas en charge le chargement de fichiers SVG ; il ne s’agit donc pas d’une alternative directe à svgtoqml. Si un fichier SVG complexe contient une forme spécifique requise par l’application, il peut s’avérer plus pratique de copier cette description de chemin dans PathSvg plutôt 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.