Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. QML and Qt Quick
  4. Qml svg element id
Forum Updated to NodeBB v4.3 + New Features

Qml svg element id

Scheduled Pinned Locked Moved QML and Qt Quick
2 Posts 1 Posters 3.6k 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.
  • D Offline
    D Offline
    Dgzt
    wrote on last edited by
    #1

    Hi all!

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

    1 Reply Last reply
    0
    • D Offline
      D Offline
      Dgzt
      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 Extensions
      • Unsolved