QSvgRenderer Class
La classe QSvgRenderer sert à afficher le contenu des fichiers SVG sur des périphériques de dessin. En savoir plus...
| En-tête : | #include <QSvgRenderer> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Svg) target_link_libraries(mytarget PRIVATE Qt6::Svg) |
| qmake : | QT += svg |
| Hérite de : | QObject |
- Liste de tous les membres, y compris les membres hérités
- QSvgRenderer fait partie des classes de dessin.
Remarque : toutes les fonctions de cette classe sont réentrantes.
Propriétés
|
Fonctions publiques
| QSvgRenderer(QObject *parent = nullptr) | |
| QSvgRenderer(QXmlStreamReader *contents, QObject *parent = nullptr) | |
| QSvgRenderer(const QByteArray &contents, QObject *parent = nullptr) | |
| QSvgRenderer(const QString &filename, QObject *parent = nullptr) | |
| virtual | ~QSvgRenderer() |
| bool | animated() const |
| Qt::AspectRatioMode | aspectRatioMode() const |
| QRectF | boundsOnElement(const QString &id) const |
| QSize | defaultSize() const |
| bool | elementExists(const QString &id) const |
| int | framesPerSecond() const |
| bool | isAnimationEnabled() const |
| bool | isValid() const |
| QtSvg::Options | options() const |
| void | setAnimationEnabled(bool enable) |
| void | setAspectRatioMode(Qt::AspectRatioMode mode) |
| void | setFramesPerSecond(int num) |
| void | setOptions(QtSvg::Options flags) |
| void | setViewBox(const QRect &viewbox) |
| void | setViewBox(const QRectF &viewbox) |
| QTransform | transformForElement(const QString &id) const |
| QRect | viewBox() const |
| QRectF | viewBoxF() const |
Emplacements publics
| bool | load(QXmlStreamReader *contents) |
| bool | load(const QByteArray &contents) |
| bool | load(const QString &filename) |
| void | render(QPainter *painter) |
| void | render(QPainter *painter, const QRectF &bounds) |
| void | render(QPainter *painter, const QString &elementId, const QRectF &bounds = QRectF()) |
Signaux
| void | repaintNeeded() |
Membres publics statiques
(since 6.8) void | setDefaultOptions(QtSvg::Options flags) |
Description détaillée
Grâce à QSvgRenderer, les graphiques vectoriels évolutifs (SVG) peuvent être rendus sur n'importe quelle sous-classe de QPaintDevice, y compris QWidget, QImage et QGLWidget.
QSvgRenderer fournit une API prenant en charge les fonctionnalités de base du rendu SVG, telles que le chargement et le rendu de dessins statiques, ainsi que des fonctionnalités plus interactives comme l’animation. Le rendu étant effectué à l’aide d’ QPainter, les dessins SVG peuvent être rendus sur n’importe quelle sous-classe de QPaintDevice.
Les dessins SVG sont chargés soit lors de la construction d’un objet `QSvgRenderer`, soit ultérieurement à l’aide des fonctions ` load()`. Les données sont fournies soit directement sous forme de XML sérialisé, soit indirectement à l’aide d’un nom de fichier. Si un fichier valide a été chargé, que ce soit lors de la construction du moteur de rendu ou ultérieurement, la fonction ` isValid()` renvoie `true` ; dans le cas contraire, elle renvoie `false`. QSvgRenderer fournit le slot ` render()` pour afficher le document actuel, ou l’image actuelle d’un document animé, à l’aide d’un peintre donné.
La fonction defaultSize() fournit des informations sur l’espace nécessaire au rendu du fichier SVG actuellement chargé. Cela est utile pour les dispositifs de dessin, tels que QWidget, qui doivent souvent fournir une indication de taille à leur mise en page parente. La taille par défaut d’un dessin peut différer de sa zone visible, déterminée à l’aide de la propriété viewBox.
Les dessins SVG animés sont pris en charge et peuvent être contrôlés à l'aide d'un ensemble simple de fonctions et de propriétés :
- La fonction ` animated()` indique si un dessin contient des informations d’animation.
- La propriété ` framesPerSecond ` contient la fréquence à laquelle l’animation est lue.
Enfin, la classe QSvgRenderer fournit le signal repaintNeeded() qui est émis chaque fois que le rendu du document doit être mis à jour.
Voir également QSvgWidget, Qt SVG C++ Classeset QPicture.
Documentation sur les propriétés
[since 6.7] animationEnabled : bool
Cette propriété détermine si l'animation doit s'exécuter, lorsque le fichier SVG contient des éléments animés
Si la propriété est définie sur « false », le minuteur d'animation est arrêté. Si la propriété est définie sur « true », le minuteur d'animation est lancé, à condition que le fichier SVG contienne des éléments animés.
Si le fichier SVG n’est pas animé, cette propriété n’a aucun effet. Dans le cas contraire, sa valeur par défaut est « true ».
Cette énumération a été introduite dans Qt 6.7.
Fonctions d'accès :
| bool | isAnimationEnabled() const |
| void | setAnimationEnabled(bool enable) |
Voir également ` animated()`.
aspectRatioMode : Qt::AspectRatioMode
Comment le rendu respecte le rapport de largeur/hauteur de la zone d'affichage SVG
Les modes acceptés sont les suivants :
- Qt::IgnoreAspectRatio (par défaut) : le format d’image est ignoré et le rendu est étiré pour s’adapter aux limites cibles.
- Qt::KeepAspectRatio: le rendu est centré et agrandi autant que possible à l'intérieur des limites cibles tout en conservant le rapport d'aspect.
Fonctions d'accès :
| Qt::AspectRatioMode | aspectRatioMode() const |
| void | setAspectRatioMode(Qt::AspectRatioMode mode) |
framesPerSecond : int
Cette propriété contient le nombre d'images par seconde à afficher
Le nombre d'images par seconde est égal à 0 si le document actuel n'est pas animé.
Fonctions d'accès :
| int | framesPerSecond() const |
| void | setFramesPerSecond(int num) |
Voir également animated().
[since 6.7] options : QtSvg::Options
Cette propriété contient un ensemble d'indicateurs d'QtSvg::Option s permettant d'activer ou de désactiver diverses fonctionnalités liées à l'analyse et au rendu des fichiers SVG.
Pour que ces modifications prennent effet, cette propriété doit être définie avant l'exécution de ` before load ()`. Notez que les constructeurs prenant un paramètre de source SVG effectueront le chargement lors de la construction.
Cette énumération a été introduite dans Qt 6.7.
Fonctions d'accès :
| QtSvg::Options | options() const |
| void | setOptions(QtSvg::Options flags) |
Voir également setDefaultOptions.
viewBox : QRectF
Cette propriété contient le rectangle définissant la zone visible du document en coordonnées logiques
Fonctions d'accès :
| QRectF | viewBoxF() const |
| void | setViewBox(const QRect &viewbox) |
| void | setViewBox(const QRectF &viewbox) |
Documentation sur les fonctions membres
QSvgRenderer::QSvgRenderer(QObject *parent = nullptr)
Crée un nouveau moteur de rendu avec l'parent spécifiée.
QSvgRenderer::QSvgRenderer(QXmlStreamReader *contents, QObject *parent = nullptr)
Crée un nouveau moteur de rendu avec l'parent on fournie et charge les données SVG à l'aide du lecteur de flux spécifié par contents.
QSvgRenderer::QSvgRenderer(const QByteArray &contents, QObject *parent = nullptr)
Crée un nouveau moteur de rendu avec l'parent, puis charge les données SVG à partir du tableau d'octets spécifié par contents.
QSvgRenderer::QSvgRenderer(const QString &filename, QObject *parent = nullptr)
Crée un nouveau moteur de rendu avec l'parent fourni et charge le contenu du fichier SVG dont l'filename est spécifiée.
[virtual noexcept] QSvgRenderer::~QSvgRenderer()
Détruit le moteur de rendu.
bool QSvgRenderer::animated() const
Renvoie « true » si le document actuel contient des éléments animés ; sinon, renvoie « false ».
Voir aussi framesPerSecond().
QRectF QSvgRenderer::boundsOnElement(const QString &id) const
Renvoie le rectangle englobant de l'élément avec l'id. La matrice de transformation des éléments parents n'affecte pas les limites de l'élément.
Voir également transformForElement().
QSize QSvgRenderer::defaultSize() const
Renvoie la taille par défaut du contenu du document.
bool QSvgRenderer::elementExists(const QString &id) const
Renvoie « true » si l'élément portant l'id on indiquée existe dans le fichier SVG en cours d'analyse et s'il s'agit d'un élément pouvant être affiché.
Remarque : cette méthode ne renvoie « true » que pour les éléments pouvant être affichés. Cela implique que les éléments considérés comme faisant partie des propriétés de style de remplissage/contour, par exemple les radialGradients, ne seront pas détectés par cette méthode, même s'ils sont marqués par des attributs « id ».
bool QSvgRenderer::isValid() const
Renvoie « true » s'il existe un document courant valide ; sinon, renvoie « false ».
[slot] bool QSvgRenderer::load(QXmlStreamReader *contents)
Charge le fichier SVG spécifié à l'adresse contents et renvoie « true » si le contenu a été analysé avec succès ; sinon, renvoie « false ».
Le lecteur sera utilisé à partir de sa position actuelle. Si contents est null, le comportement est indéfini.
Remarque : ce slot est surchargé. Pour vous connecter à ce slot :
// Connect using qOverload:
connect(sender, &SenderClass::signal,
svgRenderer, qOverload(&QSvgRenderer::load));
// Or using a lambda as wrapper:
connect(sender, &SenderClass::signal,
svgRenderer, [receiver = svgRenderer](QXmlStreamReader *contents) { receiver->load(contents); }); [slot] bool QSvgRenderer::load(const QByteArray &contents)
Charge l'contents au format SVG spécifié et renvoie « true » si le contenu a été analysé avec succès ; sinon, renvoie « false ».
Remarque : ce slot est surchargé. Pour vous connecter à ce slot :
// Connect using qOverload:
connect(sender, &SenderClass::signal,
svgRenderer, qOverload(&QSvgRenderer::load));
// Or using a lambda as wrapper:
connect(sender, &SenderClass::signal,
svgRenderer, [receiver = svgRenderer](const QByteArray &contents) { receiver->load(contents); }); [slot] bool QSvgRenderer::load(const QString &filename)
Charge le fichier SVG spécifié par filename et renvoie « true » si le contenu a été analysé avec succès ; sinon, renvoie « false ».
Remarque : ce slot est surchargé. Pour vous connecter à ce slot :
// Connect using qOverload:
connect(sender, &SenderClass::signal,
svgRenderer, qOverload(&QSvgRenderer::load));
// Or using a lambda as wrapper:
connect(sender, &SenderClass::signal,
svgRenderer, [receiver = svgRenderer](const QString &filename) { receiver->load(filename); }); [slot] void QSvgRenderer::render(QPainter *painter)
Affiche le document actuel, ou l'image actuelle d'un document animé, à l'aide de l'painter indiquée.
Remarque : ce slot est surchargé. Pour vous connecter à ce slot :
// Connect using qOverload:
connect(sender, &SenderClass::signal,
svgRenderer, qOverload(&QSvgRenderer::render));
// Or using a lambda as wrapper:
connect(sender, &SenderClass::signal,
svgRenderer, [receiver = svgRenderer](QPainter *painter) { receiver->render(painter); }); [slot] void QSvgRenderer::render(QPainter *painter, const QRectF &bounds)
Affiche le document actuel, ou l'image actuelle d'un document animé, en utilisant l'painter fournie sur l'bounds spécifiée au sein du « painter ». Si bounds n'est pas vide, la sortie sera redimensionnée pour le remplir, en ignorant tout rapport d'aspect implicite du SVG.
Remarque : ce slot est surchargé. Pour vous connecter à ce slot :
// Connect using qOverload:
connect(sender, &SenderClass::signal,
svgRenderer, qOverload(&QSvgRenderer::render));
// Or using a lambda as wrapper:
connect(sender, &SenderClass::signal,
svgRenderer, [receiver = svgRenderer](QPainter *painter, const QRectF &bounds) { receiver->render(painter, bounds); }); [slot] void QSvgRenderer::render(QPainter *painter, const QString &elementId, const QRectF &bounds = QRectF())
Affiche l'élément donné avec l'elementId en utilisant l'painter fournie sur l'bounds spécifiée. Si le rectangle de délimitation n'est pas spécifié, l'élément SVG est mappé sur l'ensemble du périphérique de dessin.
Remarque : ce slot est surchargé. Pour vous connecter à ce slot :
// Connect using qOverload:
connect(sender, &SenderClass::signal,
svgRenderer, qOverload(&QSvgRenderer::render));
// Or using a lambda as wrapper:
connect(sender, &SenderClass::signal,
svgRenderer, [receiver = svgRenderer](QPainter *painter, const QString &elementId, const QRectF &bounds) { receiver->render(painter, elementId, bounds); }); [signal] void QSvgRenderer::repaintNeeded()
Ce signal est émis chaque fois que l'affichage du document doit être mis à jour, généralement dans le cadre d'une animation.
[static, since 6.8] void QSvgRenderer::setDefaultOptions(QtSvg::Options flags)
Définit les indicateurs d'options avec lesquels les moteurs de rendu seront créés sur « flags ». Par défaut, aucun indicateur n'est défini.
Au moment de l'exécution, cette valeur peut être remplacée par la variable d'environnement QT_SVG_DEFAULT_OPTIONS.
Cette fonction a été introduite dans Qt 6.8.
QTransform QSvgRenderer::transformForElement(const QString &id) const
Renvoie la matrice de transformation de l'élément dont l'id est spécifiée. Cette matrice est le produit des transformations des éléments parents de l'élément. La transformation de l'élément lui-même n'est pas incluse.
Pour déterminer le rectangle englobant de l’élément en coordonnées logiques, vous pouvez appliquer la matrice au rectangle renvoyé par la fonction boundsOnElement().
Voir également boundsOnElement().
QRect QSvgRenderer::viewBox() const
Renvoie viewBoxF().toRect().
Voir également setViewBox() et viewBoxF().
© 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.