QSvgRenderer Class
La classe QSvgRenderer est utilisée pour dessiner le contenu des fichiers SVG sur les dispositifs de peinture. Plus d'informations...
| En-tête : | #include <QSvgRenderer> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Svg)target_link_libraries(mytarget PRIVATE Qt6::Svg) |
| qmake : | QT += svg |
| Héritages : | QObject |
- Liste de tous les membres, y compris les membres hérités
- QSvgRenderer fait partie des classes de peinture.
Note : 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
En utilisant QSvgRenderer, les Scalable Vector Graphics (SVG) peuvent être rendus sur n'importe quelle sous-classe de QPaintDevice, y compris QWidget, QImage, et QGLWidget.
QSvgRenderer fournit une API qui prend en charge les fonctions de base du rendu SVG, telles que le chargement et le rendu de dessins statiques, ainsi que des fonctions plus interactives telles que l'animation. Comme le rendu est effectué à l'aide de QPainter, les dessins SVG peuvent être rendus sur n'importe quelle sous-classe de QPaintDevice.
Les dessins SVG sont soit chargés lors de la construction d'un QSvgRenderer, soit chargés 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é, soit lors de la construction du moteur de rendu, soit ultérieurement, isValid() renvoie vrai ; sinon, il renvoie faux. QSvgRenderer fournit l'emplacement render() pour effectuer le rendu du document actuel, ou de 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é. Cette fonction est utile pour les dispositifs de peinture, tels que QWidget, qui doivent souvent fournir une indication de taille à leur disposition parentale. 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'une simple collection de fonctions et de propriétés :
- La fonction animated() indique si un dessin contient des informations d'animation.
- La propriété framesPerSecond indique la vitesse de lecture de l'animation.
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é indique si l'animation doit être exécutée, si le SVG est animé
Si la valeur de la propriété est false, la minuterie de l'animation est arrêtée. Si la valeur de la propriété est true, la minuterie de l'animation démarre, à condition que le SVG contienne des éléments animés.
Si le SVG n'est pas animé, la propriété n'aura aucun effet. Dans le cas contraire, la valeur par défaut de la propriété est true.
Cette propriété a été introduite dans Qt 6.7.
Fonctions d'accès :
| bool | isAnimationEnabled() const |
| void | setAnimationEnabled(bool enable) |
Voir aussi animated().
aspectRatioMode : Qt::AspectRatioMode
la manière dont le rendu respecte le rapport d'aspect de la boîte de visualisation SVG.
Les modes acceptés sont les suivants :
- Qt::IgnoreAspectRatio (par défaut) : le rapport hauteur/largeur est ignoré et le rendu est étiré jusqu'aux limites de la cible.
- Qt::KeepAspectRatio(par défaut) : le rendu est centré et mis à l'échelle aussi largement que possible dans les limites de la cible tout en préservant le rapport hauteur/largeur.
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 en cours n'est pas animé.
Fonctions d'accès :
| int | framesPerSecond() const |
| void | setFramesPerSecond(int num) |
Voir aussi animated().
[since 6.7] options : QtSvg::Options
Cette propriété contient un ensemble de drapeaux QtSvg::Option qui peuvent être utilisés pour activer ou désactiver diverses fonctionnalités de l'analyse et du rendu des fichiers SVG.
Pour prendre effet, cette propriété doit être définie before load () est exécuté. Notez que les constructeurs prenant un paramètre de source SVG effectueront le chargement pendant la construction.
Cette propriété a été introduite dans Qt 6.7.
Fonctions d'accès :
| QtSvg::Options | options() const |
| void | setOptions(QtSvg::Options flags) |
Voir aussi setDefaultOptions.
viewBox : QRectF
Cette propriété contient le rectangle spécifiant 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) |
Fonction membre Documentation
QSvgRenderer::QSvgRenderer(QObject *parent = nullptr)
Construit un nouveau moteur de rendu avec l'adresse parent.
QSvgRenderer::QSvgRenderer(QXmlStreamReader *contents, QObject *parent = nullptr)
Construit un nouveau moteur de rendu avec l'adresse parent et charge les données SVG à l'aide du lecteur de flux spécifié par contents.
QSvgRenderer::QSvgRenderer(const QByteArray &contents, QObject *parent = nullptr)
Construit un nouveau moteur de rendu avec l'adresse parent et charge les données SVG à partir du tableau d'octets spécifié par contents.
QSvgRenderer::QSvgRenderer(const QString &filename, QObject *parent = nullptr)
Construit un nouveau moteur de rendu avec l'adresse parent donnée et charge le contenu du fichier SVG avec l'adresse filename spécifiée.
[virtual noexcept] QSvgRenderer::~QSvgRenderer()
Détruit le moteur de rendu.
bool QSvgRenderer::animated() const
Retourne true si le document actuel contient des éléments animés, sinon retourne false.
Voir également framesPerSecond().
QRectF QSvgRenderer::boundsOnElement(const QString &id) const
Renvoie le rectangle de délimitation de l'élément avec l'adresse id. La matrice de transformation des éléments parents n'affecte pas les limites de l'élément.
Voir aussi transformForElement().
QSize QSvgRenderer::defaultSize() const
Renvoie la taille par défaut du contenu du document.
bool QSvgRenderer::elementExists(const QString &id) const
Renvoie un résultat positif si l'élément portant l'adresse id existe dans le fichier SVG actuellement analysé et s'il s'agit d'un élément pouvant être rendu.
Remarque : cette méthode ne renvoie un résultat positif que pour les éléments qui peuvent être rendus. Cela signifie que les éléments considérés comme faisant partie des propriétés de style fill/stroke, par exemple radialGradients, même s'ils sont marqués par des attributs "id", ne seront pas trouvés par cette méthode.
bool QSvgRenderer::isValid() const
Retourne true s'il existe un document courant valide, sinon retourne false.
[slot] bool QSvgRenderer::load(QXmlStreamReader *contents)
Charge le SVG spécifié dans contents, en renvoyant true si le contenu a été analysé avec succès ; sinon, il renvoie false.
Le lecteur sera utilisé à partir de l'endroit où il est actuellement positionné. Si contents est null, le comportement est indéfini.
Remarque : ce slot est surchargé. Pour se 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 le format SVG spécifié contents, en renvoyant true si le contenu a été analysé avec succès ; sinon, il renvoie false.
Note : Ce slot est surchargé. Pour se 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, en renvoyant true si le contenu a été analysé avec succès, sinon en renvoyant false.
Note : Ce slot est surchargé. Pour se 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)
Rend le document actuel, ou l'image actuelle d'un document animé, en utilisant l'adresse painter.
Note : Ce slot est surchargé. Pour se 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)
Effectue le rendu du document actuel, ou de l'image actuelle d'un document animé, en utilisant l'adresse painter sur l'adresse bounds spécifiée à l'intérieur du peintre. Si bounds n'est pas vide, la sortie sera mise à l'échelle pour le remplir, en ignorant tout rapport d'aspect impliqué par le SVG.
Note : Ce slot est surchargé. Pour se 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())
Rend l'élément donné avec elementId en utilisant painter sur bounds. Si le rectangle de délimitation n'est pas spécifié, l'élément SVG est représenté sur l'ensemble du dispositif de peinture.
Note : Ce slot est surchargé. Pour se 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 lorsque le rendu du document doit être mis à jour, généralement à des fins d'animation.
[static, since 6.8] void QSvgRenderer::setDefaultOptions(QtSvg::Options flags)
Définit les drapeaux d'option avec lesquels les moteurs de rendu seront créés à flags. Par défaut, aucun drapeau n'est défini.
Au moment de l'exécution, cela peut être remplacé 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 avec l'adresse id. La matrice est un produit de la transformation des parents de l'élément. La transformation de l'élément lui-même n'est pas incluse.
Pour trouver le rectangle de délimitation de l'élément en coordonnées logiques, vous pouvez appliquer la matrice au rectangle renvoyé par boundsOnElement().
Voir aussi boundsOnElement().
QRect QSvgRenderer::viewBox() const
Renvoie viewBoxF().toRect().
Voir aussi 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.