QGraphicsSvgItem Class
La clase QGraphicsSvgItem es un QGraphicsItem que se puede utilizar para representar el contenido de los archivos SVG. Más...
| Cabecera: | #include <QGraphicsSvgItem> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS SvgWidgets)target_link_libraries(mytarget PRIVATE Qt6::SvgWidgets) |
| qmake: | QT += svgwidgets |
| Hereda: | QGraphicsObject |
Propiedades
- elementId : QString
- maximumCacheSize : QSize
Funciones públicas
| 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) |
Funciones públicas reimplementadas
| virtual QRectF | boundingRect() const override |
| virtual void | paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr) override |
| virtual int | type() const override |
Descripción Detallada
QGraphicsSvgItem proporciona una forma de renderizar archivos SVG en QGraphicsView. QGraphicsSvgItem puede crearse pasando el archivo SVG a renderizar a su constructor o estableciendo explícitamente un QSvgRenderer compartido en él.
Nótese que poner QSvgRenderer en un QGraphicsSvgItem no hace que el item tome propiedad del renderizador, por lo tanto si se usa el método setSharedRenderer() hay que asegurarse de que el tiempo de vida del objeto QSvgRenderer será al menos tan largo como el del QGraphicsSvgItem.
QGraphicsSvgItem proporciona una forma de renderizar sólo partes de los archivos SVG a través de setElementId. Si se llama al método setElementId(), sólo se renderizará el elemento SVG (y sus hijos) con el id pasado. Esto proporciona una forma conveniente de renderizar selectivamente grandes archivos SVG que contienen un número de elementos discretos. Por ejemplo, el siguiente código renderiza sólo los comodines de un archivo SVG que contiene una baraja de cartas completa:
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"));
El tamaño del elemento puede establecerse mediante la manipulación directa de la matriz de transformación de los elementos.
Por defecto, el renderizado SVG se almacena en caché utilizando el modo QGraphicsItem::DeviceCoordinateCache para acelerar la visualización de los elementos. El almacenamiento en caché puede desactivarse pasando QGraphicsItem::NoCache al método QGraphicsItem::setCacheMode().
Véase también QSvgWidget, Qt SVG C++ Classes, QGraphicsItem, y QGraphicsView.
Documentación de propiedades
elementId : QString
Esta propiedad contiene el ID XML del elemento.
Funciones de acceso:
| QString | elementId() const |
| void | setElementId(const QString &id) |
maximumCacheSize : QSize
Esta propiedad contiene el tamaño máximo de la caché de coordenadas del dispositivo para este elemento.
Funciones de acceso:
| QSize | maximumCacheSize() const |
| void | setMaximumCacheSize(const QSize &size) |
Documentación de funciones miembro
QGraphicsSvgItem::QGraphicsSvgItem(QGraphicsItem *parent = nullptr)
Crea un nuevo elemento SVG con la dirección parent.
QGraphicsSvgItem::QGraphicsSvgItem(const QString &fileName, QGraphicsItem *parent = nullptr)
Construye un nuevo elemento con el parent dado y carga el contenido del archivo SVG con el fileName especificado.
[override virtual] QRectF QGraphicsSvgItem::boundingRect() const
Reimplementa: QGraphicsItem::boundingRect() const.
Devuelve el rectángulo delimitador de este elemento.
QString QGraphicsSvgItem::elementId() const
Devuelve el ID XML del elemento que se está renderizando actualmente. Devuelve una cadena vacía si se está renderizando todo el archivo.
Nota: Función Getter para la propiedad elementId.
Véase también setElementId().
QSize QGraphicsSvgItem::maximumCacheSize() const
Devuelve el tamaño máximo actual de la caché de coordenadas de dispositivo para este elemento. Si el elemento se almacena en caché utilizando el modo QGraphicsItem::DeviceCoordinateCache, el almacenamiento en caché se omite si la extensión del elemento en coordenadas de dispositivo es mayor que el tamaño máximo.
El tamaño máximo de caché por defecto es de 1024x768. QPixmapCache::cacheLimit() da los límites acumulativos de toda la caché, mientras que maximumCacheSize() se refiere a un tamaño máximo de caché para este elemento en particular.
Nota: Función Getter para la propiedad maximumCacheSize.
Véase también setMaximumCacheSize() y QGraphicsItem::cacheMode().
[override virtual] void QGraphicsSvgItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr)
Reimplementa: QGraphicsItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget).
QSvgRenderer *QGraphicsSvgItem::renderer() const
Devuelve el uso actual de QSvgRenderer.
void QGraphicsSvgItem::setElementId(const QString &id)
Establece el ID XML del elemento en id.
Nota: Función Setter para la propiedad elementId.
Véase también elementId().
void QGraphicsSvgItem::setMaximumCacheSize(const QSize &size)
Establece el tamaño máximo de la caché de coordenadas de dispositivo del elemento en size. Si el elemento se almacena en caché utilizando el modo QGraphicsItem::DeviceCoordinateCache, el almacenamiento en caché se omite si la extensión del elemento en coordenadas de dispositivo es mayor que size.
La caché corresponde a la QPixmap que se utiliza para almacenar en caché los resultados del renderizado. Utilice QPixmapCache::setCacheLimit() para establecer limitaciones en toda la caché y utilice setMaximumCacheSize() al establecer el tamaño de la caché para elementos individuales.
Nota: Función setter para la propiedad maximumCacheSize.
Véase también maximumCacheSize() y QGraphicsItem::cacheMode().
void QGraphicsSvgItem::setSharedRenderer(QSvgRenderer *renderer)
Establece que renderer sea un QSvgRenderer compartido en el elemento. Con este método se puede compartir el mismo QSvgRenderer en varios elementos. Esto significa que el archivo SVG sólo se analizará una vez. QSvgRenderer pasado a este método tiene que existir mientras se utilice este elemento.
[override virtual] int QGraphicsSvgItem::type() const
Reimplementa: 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.