Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt
  • Unsolved
Collapse
qtws26_logo

The Qt Event of the Year: Qt World Summit 2026

Save Your Spot >
Brand Logo
  1. Home
  2. Qt Development
  3. QML and Qt Quick
  4. Qml svg element id
Qt 6.12 LTS is out! See what's new in the release blog

Qml svg element id

Scheduled Pinned Locked Moved QML and Qt Quick
2 Posts 1 Posters 3.7k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • ? Offline
    ? Offline
    A Former User
    wrote on last edited by
    #1

    Hi all!

    How can I set element id of svg image in QML?

    1 Reply Last reply
    0
    • ? Offline
      ? Offline
      A Former User
      wrote on last edited by
      #2

      So, I writed an own declarative item and now works.

      svgitem.h:
      @#ifndef SVGIMAGE_H
      #define SVGIMAGE_H

      #include <QDeclarativeItem>

      class QGraphicsSvgItem;

      class SvgImage : public QDeclarativeItem
      {
      Q_OBJECT

      Q_PROPERTY( QString source READ source WRITE setSource NOTIFY sourceChanged );
      Q_PROPERTY( QString elementId READ elementId WRITE setElementId NOTIFY elementIdChanged );
      
      QString mSource;
      QString mElementId;
      
      QGraphicsSvgItem* mSvgItem;
      

      public:
      SvgImage( QDeclarativeItem *parent = 0 );

      QString source(){ return mSource; }
      QString elementId(){ return mElementId; }
      
      void setSource( QString source );
      void setElementId( QString elementId );
      

      signals:
      void sourceChanged();
      void elementIdChanged();

      };

      QML_DECLARE_TYPE( SvgImage )

      #endif //SVGIMAGE_H
      @

      svgitem.cpp:
      @#include <QSvgRenderer>
      #include <QGraphicsSvgItem>
      #include "svgimage.h"

      SvgImage::SvgImage( QDeclarativeItem *parent ) :
      QDeclarativeItem( parent )
      {
      mSvgItem = new QGraphicsSvgItem( this );
      }

      void SvgImage::setSource( QString source )
      {
      mSource = source;

      mSvgItem->setSharedRenderer( new QSvgRenderer( mSource ) );
      
      emit sourceChanged();
      

      }

      void SvgImage::setElementId( QString elementId )
      {
      mElementId = elementId;

      mSvgItem->setElementId( mElementId );
      
      emit elementIdChanged();
      

      }
      @

      Use:
      @SvgImage{
      id: deck
      source: "william-tell.svgz"
      elementId: "back"
      }
      @

      And the tutorial "here":http://www.developer.nokia.com/Community/Wiki/Creating_a_custom_QML_element_with_Qt

      1 Reply Last reply
      0

      • Login

      • Login or register to search.
      • First post
        Last post
      0
      • Categories
      • Recent
      • Tags
      • Popular
      • Users
      • Groups
      • Search
      • Get Qt
      • Unsolved