QGraphicsSvgItem Class
La classe QGraphicsSvgItem est une QGraphicsItem qui peut être utilisée pour rendre le contenu des fichiers SVG. Plus d'informations...
| En-tête : | #include <QGraphicsSvgItem> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS SvgWidgets)target_link_libraries(mytarget PRIVATE Qt6::SvgWidgets) |
| qmake : | QT += svgwidgets |
| Héritages : | 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 de rendre des fichiers SVG sur QGraphicsView. QGraphicsSvgItem peut être créé en passant le fichier SVG à rendre à son constructeur ou en définissant explicitement une adresse partagée QSvgRenderer.
Notez que le fait de définir QSvgRenderer sur un QGraphicsSvgItem ne fait pas en sorte que l'élément devienne propriétaire 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) avec l'identifiant passé sera rendu. Il s'agit d'un moyen pratique d'effectuer un rendu sélectif de fichiers SVG volumineux contenant un certain nombre d'éléments distincts. Par exemple, le code suivant ne rend que 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 par la manipulation directe de la matrice de transformation de l'élément.
Par défaut, le rendu SVG est mis en cache en utilisant le mode QGraphicsItem::DeviceCoordinateCache pour accélérer l'affichage des éléments. La mise en cache peut être désactivée en passant QGraphicsItem::NoCache à la méthode QGraphicsItem::setCacheMode().
Voir aussi QSvgWidget, Qt SVG C++ Classes, QGraphicsItem, et QGraphicsView.
Documentation sur les propriétés
elementId : QString
Cette propriété contient l'ID 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) |
Fonction membre Documentation
QGraphicsSvgItem::QGraphicsSvgItem(QGraphicsItem *parent = nullptr)
Construit un nouvel élément SVG avec l'adresse parent.
QGraphicsSvgItem::QGraphicsSvgItem(const QString &fileName, QGraphicsItem *parent = nullptr)
Construit un nouvel élément avec l'adresse parent donnée et charge le contenu du fichier SVG avec l'adresse fileName spécifiée.
[override virtual] QRectF QGraphicsSvgItem::boundingRect() const
Réimplémente : QGraphicsItem::boundingRect() const.
Renvoie le rectangle de délimitation de cet élément.
QString QGraphicsSvgItem::elementId() const
Renvoie l'ID XML de l'élément en cours de rendu. Renvoie une chaîne vide si le fichier entier est en cours de rendu.
Note : Fonction Getter pour la propriété elementId.
Voir aussi setElementId().
QSize QGraphicsSvgItem::maximumCacheSize() const
Renvoie la taille maximale actuelle du cache des coordonnées du périphérique pour cet élément. Si l'élément est mis en cache en utilisant le 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 à la taille maximale.
La taille maximale du cache par défaut est de 1024x768. QPixmapCache::cacheLimit() indique les limites cumulatives de l'ensemble du cache, tandis que maximumCacheSize() indique la taille maximale du cache pour cet élément particulier.
Remarque : fonction Getter 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'adresse QSvgRenderer actuellement utilisée.
void QGraphicsSvgItem::setElementId(const QString &id)
Définit l'ID XML de l'élément à id.
Remarque : fonction de définition de 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 à size. Si l'élément est mis en cache en utilisant le 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 à l'adresse QPixmap qui est utilisée pour mettre en cache les résultats du rendu. Utilisez QPixmapCache::setCacheLimit() pour fixer des limites à l'ensemble du cache et utilisez setMaximumCacheSize() pour fixer la taille du cache pour des éléments individuels.
Remarque : fonction de définition de la propriété maximumCacheSize.
Voir également maximumCacheSize() et QGraphicsItem::cacheMode().
void QGraphicsSvgItem::setSharedRenderer(QSvgRenderer *renderer)
Définit renderer comme étant un QSvgRenderer partagé sur l'élément. En utilisant cette méthode, il est possible de partager le même QSvgRenderer sur un certain nombre d'éléments. Cela signifie que le fichier SVG ne sera analysé qu'une seule fois. QSvgRenderer transmis à cette méthode doit exister aussi longtemps que l'é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.