QGraphicsSvgItem Class
La classe `QGraphicsSvgItem` est un élément graphique ( QGraphicsItem ) permettant d'afficher le contenu de fichiers SVG. En savoir plus...
| En-tête : | #include <qgraphicssvgitem.h> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS SvgWidgets) target_link_libraries(mytarget PRIVATE Qt6::SvgWidgets) |
| qmake : | QT += svgwidgets |
| Hérite de : | QGraphicsObject |
Propriétés
- elementId : QString
- maximumCacheSize : QSize
Fonctions publiques
| QGraphicsSvgItem(QGraphicsItem *parent = nullptr) | |
| QGraphicsSvgItem(const QString &fileName, QGraphicsItem *parent = nullptr) | |
| QString | elementId() const |
| QSize | maximumCacheSize() const |
| QSvgRenderer * | renderer() const |
| void | setElementId(const QString &id) |
| void | setMaximumCacheSize(const QSize &size) |
| void | setSharedRenderer(QSvgRenderer *renderer) |
Fonctions publiques réimplémentées
| virtual QRectF | boundingRect() const override |
| virtual void | paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr) override |
| virtual int | type() const override |
Description détaillée
QGraphicsSvgItem permet d'afficher des fichiers SVG sur un QGraphicsView. QGraphicsSvgItem peut être créé en transmettant le fichier SVG à afficher à son constructeur ou en lui attribuant explicitement un QSvgRenderer partagé.
Notez que le fait de définir ` QSvgRenderer ` sur un `QGraphicsSvgItem` ne confère pas à l’élément la propriété du moteur de rendu ; par conséquent, si vous utilisez la méthode ` setSharedRenderer()`, vous devez vous assurer que la durée de vie de l’objet ` QSvgRenderer ` sera au moins aussi longue que celle du `QGraphicsSvgItem`.
QGraphicsSvgItem permet de ne rendre que certaines parties des fichiers SVG via la méthode setElementId. Si la méthode setElementId() est appelée, seul l’élément SVG (et ses enfants) correspondant à l’identifiant passé sera rendu. Cela offre un moyen pratique de rendre de manière sélective de grands fichiers SVG contenant un certain nombre d’éléments distincts. Par exemple, le code suivant affiche uniquement les jokers d’un fichier SVG contenant un jeu de cartes complet :
QSvgRenderer *renderer = new QSvgRenderer(QLatin1String("SvgCardDeck.svg"));
QGraphicsSvgItem *black = new QGraphicsSvgItem();
QGraphicsSvgItem *red = new QGraphicsSvgItem();
black->setSharedRenderer(renderer);
black->setElementId(QLatin1String("black_joker"));
red->setSharedRenderer(renderer);
red->setElementId(QLatin1String("red_joker"));La taille de l’élément peut être définie en modifiant directement sa matrice de transformation.
Par défaut, le rendu SVG est mis en cache à l’aide du mode « QGraphicsItem::DeviceCoordinateCache » afin d’accélérer l’affichage des éléments. La mise en cache peut être désactivée en transmettant ` QGraphicsItem::NoCache ` à la méthode ` QGraphicsItem::setCacheMode()`.
Voir également QSvgWidget, Qt SVG C++ Classes, QGraphicsItem et QGraphicsView.
Documentation sur les propriétés
elementId : QString
Cette propriété contient l'identifiant XML de l'élément.
Fonctions d'accès :
| QString | elementId() const |
| void | setElementId(const QString &id) |
maximumCacheSize : QSize
Cette propriété indique la taille maximale du cache de coordonnées de l'appareil pour cet élément.
Fonctions d'accès :
| QSize | maximumCacheSize() const |
| void | setMaximumCacheSize(const QSize &size) |
Documentation sur les fonctions membres
QGraphicsSvgItem::QGraphicsSvgItem(QGraphicsItem *parent = nullptr)
Crée un nouvel élément SVG à l'aide de l'parent fournie.
QGraphicsSvgItem::QGraphicsSvgItem(const QString &fileName, QGraphicsItem *parent = nullptr)
Crée un nouvel élément avec l'parent, puis charge le contenu du fichier SVG dont l'fileName est spécifiée.
[override virtual] QRectF QGraphicsSvgItem::boundingRect() const
Réimplémente : QGraphicsItem::boundingRect() const.
Renvoie le rectangle englobant de cet élément.
QString QGraphicsSvgItem::elementId() const
Renvoie l'identifiant XML de l'élément en cours d'affichage. Renvoie une chaîne vide si c'est le fichier entier qui est en cours d'affichage.
Remarque : fonctiongetter pour la propriété elementId.
Voir aussi setElementId().
QSize QGraphicsSvgItem::maximumCacheSize() const
Renvoie la taille maximale actuelle du cache des coordonnées de périphérique pour cet élément. Si l'élément est mis en cache en mode « QGraphicsItem::DeviceCoordinateCache », la mise en cache est contournée si la taille de l'élément en coordonnées de périphérique dépasse la taille maximale.
La taille maximale par défaut du cache est de 1024x768. La méthode ` QPixmapCache::cacheLimit()` renvoie les limites cumulées de l'ensemble du cache, tandis que la méthode `maximumCacheSize()` fait référence à la taille maximale du cache pour cet élément en particulier.
Remarque : fonctiongetter pour la propriété maximumCacheSize.
Voir également setMaximumCacheSize() et QGraphicsItem::cacheMode().
[override virtual] void QGraphicsSvgItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr)
Réimplémente : QGraphicsItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget).
QSvgRenderer *QGraphicsSvgItem::renderer() const
Renvoie l'QSvgRenderer e actuellement utilisée.
void QGraphicsSvgItem::setElementId(const QString &id)
Définit l'identifiant XML de l'élément sur « id ».
Remarque : fonctionde définition pour la propriété elementId.
Voir aussi elementId().
void QGraphicsSvgItem::setMaximumCacheSize(const QSize &size)
Définit la taille maximale du cache de coordonnées de périphérique de l'élément sur size. Si l'élément est mis en cache en mode QGraphicsItem::DeviceCoordinateCache, la mise en cache est contournée si l'extension de l'élément en coordonnées de périphérique est supérieure à size.
Le cache correspond à la propriété ` QPixmap `, qui sert à mettre en cache les résultats du rendu. Utilisez ` QPixmapCache::setCacheLimit()` pour définir des limites sur l’ensemble du cache et utilisez `setMaximumCacheSize()` pour définir la taille du cache d’éléments individuels.
Remarque : fonctionde définition pour la propriété maximumCacheSize.
Voir également maximumCacheSize() et QGraphicsItem::cacheMode().
void QGraphicsSvgItem::setSharedRenderer(QSvgRenderer *renderer)
Définit « renderer » comme une instance partagée de « QSvgRenderer » pour l'élément. Cette méthode permet de partager la même instance de « QSvgRenderer » entre plusieurs éléments. Cela signifie que le fichier SVG ne sera analysé qu'une seule fois. L'instance de « QSvgRenderer » transmise à cette méthode doit exister tant que cet élément est utilisé.
[override virtual] int QGraphicsSvgItem::type() const
Réimplémente : QGraphicsItem::type() const.
© 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.