Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. How to make a SVG at tab Widget ?
Forum Updated to NodeBB v4.3 + New Features

How to make a SVG at tab Widget ?

Scheduled Pinned Locked Moved Solved General and Desktop
55 Posts 6 Posters 10.6k Views 2 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.
  • R RiceBall

    @mrjj said in How to make a SVG at tab Widget ?:

    Hi
    I assume you want to use the one you put in the tab ?

    QGraphicsView view(scene);
    view.show();

    ui->graphicsView->setScene(scene);

    Thank you for your reply.
    It looks like have loading something.

    But as you say , I think it just only show one moment.
    Where is wrong?

    0_1559611246187_73721276-3baa-43f8-84aa-5dd0616a88eb-image.png

    D Offline
    D Offline
    Devopia53
    wrote on last edited by
    #10

    @RiceBall

    like this:

    graphicsView->scene()->addWidget(new QSvgWidget(":/your.svg"));
    
    R 1 Reply Last reply
    1
    • D Devopia53

      @RiceBall

      like this:

      graphicsView->scene()->addWidget(new QSvgWidget(":/your.svg"));
      
      R Offline
      R Offline
      RiceBall
      wrote on last edited by
      #11

      @Devopia53 said in How to make a SVG at tab Widget ?:

      @RiceBall

      like this:

      graphicsView->scene()->addWidget(new QSvgWidget(":/your.svg"));
      

      Thank you for your reply.
      I try to fix it.
      But it show following message.
      0_1559618556774_7a0a23e1-f86a-4ff4-a3f2-68af5a9392c5-image.png

      D Pradeep P NP 2 Replies Last reply
      0
      • R RiceBall

        @Devopia53 said in How to make a SVG at tab Widget ?:

        @RiceBall

        like this:

        graphicsView->scene()->addWidget(new QSvgWidget(":/your.svg"));
        

        Thank you for your reply.
        I try to fix it.
        But it show following message.
        0_1559618556774_7a0a23e1-f86a-4ff4-a3f2-68af5a9392c5-image.png

        D Offline
        D Offline
        Devopia53
        wrote on last edited by
        #12

        @RiceBall

        first, in .pro

        QT += svg

        and then add

        #include <QSvgWidget>

        1 Reply Last reply
        2
        • R RiceBall

          @Devopia53 said in How to make a SVG at tab Widget ?:

          @RiceBall

          like this:

          graphicsView->scene()->addWidget(new QSvgWidget(":/your.svg"));
          

          Thank you for your reply.
          I try to fix it.
          But it show following message.
          0_1559618556774_7a0a23e1-f86a-4ff4-a3f2-68af5a9392c5-image.png

          Pradeep P NP Offline
          Pradeep P NP Offline
          Pradeep P N
          wrote on last edited by Pradeep P N
          #13

          @RiceBall
          Add QT += svg in .pro file

          Refer Rendering SVG Files

          Pradeep Nimbalkar.
          Upvote the answer(s) that helped you to solve the issue...
          Keep code clean.

          R 1 Reply Last reply
          4
          • Pradeep P NP Pradeep P N

            @RiceBall
            Add QT += svg in .pro file

            Refer Rendering SVG Files

            R Offline
            R Offline
            RiceBall
            wrote on last edited by
            #14

            @Devopia53
            @Pradeep-P-N said in How to make a SVG at tab Widget ?:

            @RiceBall
            Add QT += svg in .pro file

            Refer Rendering SVG Files

            I try to fix it.
            It almost pass all compile.
            But it show "The process was ended forcefully."

            0_1559620323037_03042452-0e97-4dab-a6a1-1262504f5a74-image.png

            jsulmJ 1 Reply Last reply
            0
            • R RiceBall

              @Devopia53
              @Pradeep-P-N said in How to make a SVG at tab Widget ?:

              @RiceBall
              Add QT += svg in .pro file

              Refer Rendering SVG Files

              I try to fix it.
              It almost pass all compile.
              But it show "The process was ended forcefully."

              0_1559620323037_03042452-0e97-4dab-a6a1-1262504f5a74-image.png

              jsulmJ Offline
              jsulmJ Offline
              jsulm
              Lifetime Qt Champion
              wrote on last edited by
              #15

              @RiceBall said in How to make a SVG at tab Widget ?:

              But it show "The process was ended forcefully."

              Please debug and tell us where exactly it crashes...

              https://forum.qt.io/topic/113070/qt-code-of-conduct

              R 1 Reply Last reply
              1
              • jsulmJ jsulm

                @RiceBall said in How to make a SVG at tab Widget ?:

                But it show "The process was ended forcefully."

                Please debug and tell us where exactly it crashes...

                R Offline
                R Offline
                RiceBall
                wrote on last edited by
                #16

                @jsulm said in How to make a SVG at tab Widget ?:

                @RiceBall said in How to make a SVG at tab Widget ?:

                But it show "The process was ended forcefully."

                Please debug and tell us where exactly it crashes...

                0_1559624756167_f34fd6ad-a1f5-404d-9d56-098a782b78eb-image.png

                jsulmJ 1 Reply Last reply
                0
                • R RiceBall

                  @jsulm said in How to make a SVG at tab Widget ?:

                  @RiceBall said in How to make a SVG at tab Widget ?:

                  But it show "The process was ended forcefully."

                  Please debug and tell us where exactly it crashes...

                  0_1559624756167_f34fd6ad-a1f5-404d-9d56-098a782b78eb-image.png

                  jsulmJ Offline
                  jsulmJ Offline
                  jsulm
                  Lifetime Qt Champion
                  wrote on last edited by
                  #17

                  @RiceBall Please show the whole content of your MainWindow constructor, especially line 31.
                  I guess it is the one you posted in a screen-shot before? It would be helpful if you would simply copy/paste the code instead of posting screen-shots.
                  It looks like your scene was not yet initialised.

                  https://forum.qt.io/topic/113070/qt-code-of-conduct

                  R 1 Reply Last reply
                  1
                  • jsulmJ jsulm

                    @RiceBall Please show the whole content of your MainWindow constructor, especially line 31.
                    I guess it is the one you posted in a screen-shot before? It would be helpful if you would simply copy/paste the code instead of posting screen-shots.
                    It looks like your scene was not yet initialised.

                    R Offline
                    R Offline
                    RiceBall
                    wrote on last edited by
                    #18

                    @jsulm said in How to make a SVG at tab Widget ?:

                    @RiceBall Please show the whole content of your MainWindow constructor, especially line 31.
                    I guess it is the one you posted in a screen-shot before? It would be helpful if you would simply copy/paste the code instead of posting screen-shots.
                    It looks like your scene was not yet initialised.

                    I tried to simple it.
                    But the problem is the same.

                    .
                    mainwindow.cpp

                    #include "mainwindow.h"
                    #include "ui_mainwindow.h"
                    #include <QtGlobal>
                    #include <QMovie>
                    #include <QSvgWidget>
                    #include <QPixmap>
                    #include <QGraphicsScene>
                    #include <QGraphicsPixmapItem>
                    #include <QGraphicsView>
                    
                    MainWindow::MainWindow(QWidget *parent) :
                        QMainWindow(parent),
                        ui(new Ui::MainWindow)
                    {
                        ui->setupUi(this);
                    
                       ui->graphicsView->scene()->addWidget(new QSvgWidget("../untitled6/splash1.svg"));
                    
                    }
                    
                    MainWindow::~MainWindow()
                    {
                        delete ui;
                    }
                    
                    
                    jsulmJ 1 Reply Last reply
                    0
                    • R RiceBall

                      @jsulm said in How to make a SVG at tab Widget ?:

                      @RiceBall Please show the whole content of your MainWindow constructor, especially line 31.
                      I guess it is the one you posted in a screen-shot before? It would be helpful if you would simply copy/paste the code instead of posting screen-shots.
                      It looks like your scene was not yet initialised.

                      I tried to simple it.
                      But the problem is the same.

                      .
                      mainwindow.cpp

                      #include "mainwindow.h"
                      #include "ui_mainwindow.h"
                      #include <QtGlobal>
                      #include <QMovie>
                      #include <QSvgWidget>
                      #include <QPixmap>
                      #include <QGraphicsScene>
                      #include <QGraphicsPixmapItem>
                      #include <QGraphicsView>
                      
                      MainWindow::MainWindow(QWidget *parent) :
                          QMainWindow(parent),
                          ui(new Ui::MainWindow)
                      {
                          ui->setupUi(this);
                      
                         ui->graphicsView->scene()->addWidget(new QSvgWidget("../untitled6/splash1.svg"));
                      
                      }
                      
                      MainWindow::~MainWindow()
                      {
                          delete ui;
                      }
                      
                      
                      jsulmJ Offline
                      jsulmJ Offline
                      jsulm
                      Lifetime Qt Champion
                      wrote on last edited by
                      #19

                      @RiceBall Did you set the scene?
                      https://doc.qt.io/qt-5/qgraphicsview.html#setScene

                      https://forum.qt.io/topic/113070/qt-code-of-conduct

                      R 1 Reply Last reply
                      2
                      • jsulmJ jsulm

                        @RiceBall Did you set the scene?
                        https://doc.qt.io/qt-5/qgraphicsview.html#setScene

                        R Offline
                        R Offline
                        RiceBall
                        wrote on last edited by RiceBall
                        #20

                        @jsulm said in How to make a SVG at tab Widget ?:

                        @RiceBall Did you set the scene?
                        https://doc.qt.io/qt-5/qgraphicsview.html#setScene

                        No.I don't set any scene.
                        Should I need to set it by " QGraphicsScene scene " at mainwindow.cpp ??? Or Not ?

                        jsulmJ 1 Reply Last reply
                        0
                        • R RiceBall

                          @jsulm said in How to make a SVG at tab Widget ?:

                          @RiceBall Did you set the scene?
                          https://doc.qt.io/qt-5/qgraphicsview.html#setScene

                          No.I don't set any scene.
                          Should I need to set it by " QGraphicsScene scene " at mainwindow.cpp ??? Or Not ?

                          jsulmJ Offline
                          jsulmJ Offline
                          jsulm
                          Lifetime Qt Champion
                          wrote on last edited by jsulm
                          #21

                          @RiceBall Well https://doc.qt.io/qt-5/qgraphicsview.html#scene says
                          "Returns a pointer to the scene that is currently visualized in the view. If no scene is currently visualized, 0 is returned."
                          I would say you have to set a scene as shown here https://doc.qt.io/qt-5/qgraphicsview.html

                          QGraphicsScene scene;
                          scene.addText("Hello, world!");
                          
                          QGraphicsView view(&scene); // use setScene() instead
                          view.show();
                          

                          https://forum.qt.io/topic/113070/qt-code-of-conduct

                          R 1 Reply Last reply
                          3
                          • jsulmJ jsulm

                            @RiceBall Well https://doc.qt.io/qt-5/qgraphicsview.html#scene says
                            "Returns a pointer to the scene that is currently visualized in the view. If no scene is currently visualized, 0 is returned."
                            I would say you have to set a scene as shown here https://doc.qt.io/qt-5/qgraphicsview.html

                            QGraphicsScene scene;
                            scene.addText("Hello, world!");
                            
                            QGraphicsView view(&scene); // use setScene() instead
                            view.show();
                            
                            R Offline
                            R Offline
                            RiceBall
                            wrote on last edited by
                            #22

                            @jsulm said in How to make a SVG at tab Widget ?:

                            @RiceBall Well https://doc.qt.io/qt-5/qgraphicsview.html#scene says
                            "Returns a pointer to the scene that is currently visualized in the view. If no scene is currently visualized, 0 is returned."
                            I would say you have to set a scene as shown here https://doc.qt.io/qt-5/qgraphicsview.html

                            QGraphicsScene scene;
                            scene.addText("Hello, world!");
                            
                            QGraphicsView view(&scene); // use setScene() instead
                            view.show();
                            

                            I try to fix it as your recommend.
                            But it will shown "no viable conversion from 'QGraphicsScene' to ' QGraphicsScene *'"
                            Where should I need to change ?

                            0_1559628266061_8753d00e-b560-4a5b-ae3b-0abf8566b31e-image.png

                            jsulmJ 1 Reply Last reply
                            0
                            • Pradeep P NP Offline
                              Pradeep P NP Offline
                              Pradeep P N
                              wrote on last edited by Pradeep P N
                              #23

                              @RiceBall said in How to make a SVG at tab Widget ?:

                              'QGraphicsScene' to ' QGraphicsScene *'"

                              Please try ui->graphicView->setScene(&scene);

                              Pradeep Nimbalkar.
                              Upvote the answer(s) that helped you to solve the issue...
                              Keep code clean.

                              R 1 Reply Last reply
                              3
                              • mrjjM Offline
                                mrjjM Offline
                                mrjj
                                Lifetime Qt Champion
                                wrote on last edited by
                                #24

                                Hi
                                Please notice you are killing the scene very fast.
                                Make it a member of the class.
                                Should live in class so it dont go out of scope,

                                1 Reply Last reply
                                3
                                • R RiceBall

                                  @jsulm said in How to make a SVG at tab Widget ?:

                                  @RiceBall Well https://doc.qt.io/qt-5/qgraphicsview.html#scene says
                                  "Returns a pointer to the scene that is currently visualized in the view. If no scene is currently visualized, 0 is returned."
                                  I would say you have to set a scene as shown here https://doc.qt.io/qt-5/qgraphicsview.html

                                  QGraphicsScene scene;
                                  scene.addText("Hello, world!");
                                  
                                  QGraphicsView view(&scene); // use setScene() instead
                                  view.show();
                                  

                                  I try to fix it as your recommend.
                                  But it will shown "no viable conversion from 'QGraphicsScene' to ' QGraphicsScene *'"
                                  Where should I need to change ?

                                  0_1559628266061_8753d00e-b560-4a5b-ae3b-0abf8566b31e-image.png

                                  jsulmJ Offline
                                  jsulmJ Offline
                                  jsulm
                                  Lifetime Qt Champion
                                  wrote on last edited by jsulm
                                  #25

                                  @RiceBall Please think about what you're doing instead of blindly copy/paste code snippets which meant to be simple examples.
                                  First: don't create the scene on the stack!
                                  Second: pass pointer to setScene (the error message actually tells you what is wrong).

                                  https://forum.qt.io/topic/113070/qt-code-of-conduct

                                  1 Reply Last reply
                                  4
                                  • Pradeep P NP Pradeep P N

                                    @RiceBall said in How to make a SVG at tab Widget ?:

                                    'QGraphicsScene' to ' QGraphicsScene *'"

                                    Please try ui->graphicView->setScene(&scene);

                                    R Offline
                                    R Offline
                                    RiceBall
                                    wrote on last edited by RiceBall
                                    #26

                                    @Pradeep-P-N said in How to make a SVG at tab Widget ?:

                                    @RiceBall said in How to make a SVG at tab Widget ?:

                                    'QGraphicsScene' to ' QGraphicsScene *'"

                                    Please try ui->graphicView->setScene(&scene);

                                    I success to show it finally.
                                    Thanks @jsulm @Pradeep-P-N @mrjj help.

                                    Key Point
                                    .pro

                                    QT       += svg 
                                    

                                    final code

                                    
                                        QGraphicsScene *scene = new QGraphicsScene;
                                        scene->addWidget(new QSvgWidget("../untitled6/splash1.svg"));
                                        scene->addWidget(new QSvgWidget("../untitled6/splash2.svg"));
                                    
                                        ui->graphicsView->setScene(scene);
                                    
                                    

                                    0_1559634651348_final result.gif

                                    R 1 Reply Last reply
                                    3
                                    • R RiceBall

                                      @Pradeep-P-N said in How to make a SVG at tab Widget ?:

                                      @RiceBall said in How to make a SVG at tab Widget ?:

                                      'QGraphicsScene' to ' QGraphicsScene *'"

                                      Please try ui->graphicView->setScene(&scene);

                                      I success to show it finally.
                                      Thanks @jsulm @Pradeep-P-N @mrjj help.

                                      Key Point
                                      .pro

                                      QT       += svg 
                                      

                                      final code

                                      
                                          QGraphicsScene *scene = new QGraphicsScene;
                                          scene->addWidget(new QSvgWidget("../untitled6/splash1.svg"));
                                          scene->addWidget(new QSvgWidget("../untitled6/splash2.svg"));
                                      
                                          ui->graphicsView->setScene(scene);
                                      
                                      

                                      0_1559634651348_final result.gif

                                      R Offline
                                      R Offline
                                      RiceBall
                                      wrote on last edited by
                                      #27

                                      @RiceBall said in How to make a SVG at tab Widget ?:

                                      @Pradeep-P-N said in How to make a SVG at tab Widget ?:

                                      @RiceBall said in How to make a SVG at tab Widget ?:

                                      'QGraphicsScene' to ' QGraphicsScene *'"

                                      Please try ui->graphicView->setScene(&scene);

                                      I success to show it finally.
                                      Thanks @jsulm @Pradeep-P-N @mrjj help.

                                      Key Point
                                      .pro

                                      QT       += svg 
                                      

                                      final code

                                      
                                          QGraphicsScene *scene = new QGraphicsScene;
                                          scene->addWidget(new QSvgWidget("../untitled6/splash1.svg"));
                                          scene->addWidget(new QSvgWidget("../untitled6/splash2.svg"));
                                      
                                          ui->graphicsView->setScene(scene);
                                      
                                      

                                      0_1559634651348_final result.gif

                                      Hello every one
                                      I meet a new easy problem.
                                      How could I define the scene size & transparent....?

                                      1 Reply Last reply
                                      0
                                      • Pradeep P NP Offline
                                        Pradeep P NP Offline
                                        Pradeep P N
                                        wrote on last edited by Pradeep P N
                                        #28

                                        Hi @RiceBall

                                        Scene size please check minimumRenderSize.

                                        QWidget has an option to set the windowOpacity.

                                        Below is sample code for defining the size and transparency...

                                        QGraphicsView *gView = new QGraphicsView(this);
                                        QGraphicsScene *scene = new QGraphicsScene;
                                        
                                        QSvgWidget *svgWid = new QSvgWidget(":/Freesample.svg");
                                        svgWid->setWindowOpacity(0.5); // Change as needed
                                        scene->addWidget(svgWid);
                                        
                                        gView->resize(350, 350);
                                        gView->setScene(scene);
                                        

                                        Output:

                                        Opacity : 0.5

                                        0_1559800637737_1.png

                                        Without Opacity:

                                        0_1559800660243_2.png

                                        All the best.

                                        Pradeep Nimbalkar.
                                        Upvote the answer(s) that helped you to solve the issue...
                                        Keep code clean.

                                        R 1 Reply Last reply
                                        4
                                        • Pradeep P NP Pradeep P N

                                          Hi @RiceBall

                                          Scene size please check minimumRenderSize.

                                          QWidget has an option to set the windowOpacity.

                                          Below is sample code for defining the size and transparency...

                                          QGraphicsView *gView = new QGraphicsView(this);
                                          QGraphicsScene *scene = new QGraphicsScene;
                                          
                                          QSvgWidget *svgWid = new QSvgWidget(":/Freesample.svg");
                                          svgWid->setWindowOpacity(0.5); // Change as needed
                                          scene->addWidget(svgWid);
                                          
                                          gView->resize(350, 350);
                                          gView->setScene(scene);
                                          

                                          Output:

                                          Opacity : 0.5

                                          0_1559800637737_1.png

                                          Without Opacity:

                                          0_1559800660243_2.png

                                          All the best.

                                          R Offline
                                          R Offline
                                          RiceBall
                                          wrote on last edited by
                                          #29

                                          @Pradeep-P-N said in How to make a SVG at tab Widget ?:

                                          Hi @RiceBall

                                          Scene size please check minimumRenderSize.

                                          QWidget has an option to set the windowOpacity.

                                          Below is sample code for defining the size and transparency...

                                          QGraphicsView *gView = new QGraphicsView(this);
                                          QGraphicsScene *scene = new QGraphicsScene;
                                          
                                          QSvgWidget *svgWid = new QSvgWidget(":/Freesample.svg");
                                          svgWid->setWindowOpacity(0.5); // Change as needed
                                          scene->addWidget(svgWid);
                                          
                                          gView->resize(350, 350);
                                          gView->setScene(scene);
                                          

                                          Output:

                                          Opacity : 0.5

                                          0_1559800637737_1.png

                                          Without Opacity:

                                          0_1559800660243_2.png

                                          All the best.

                                          Thank you for your answer.
                                          I have some problem.

                                          1. I can't loading several SVG. If I loading several file. It just only show last one.
                                          2. I use UI screen to set background-color:black. And I am sure my SVG is none background color.
                                            But when I loading it . It always show white background.

                                          Result
                                          0_1559802305958_cd108fdd-fff2-4022-9fa8-5e0f63edba2a-image.png

                                              QSvgWidget * svgWid1 = new QSvgWidget("../iHMI_2/splash1.svg");
                                              QSvgWidget * svgWid2 = new QSvgWidget("../iHMI_2/splash2.svg");
                                              QSvgWidget * svgWid3 = new QSvgWidget("../iHMI_2/splash3.svg");
                                              QSvgWidget * svgWid4 = new QSvgWidget("../iHMI_2/splash4.svg");
                                          
                                              QGraphicsScene *scene = new QGraphicsScene;
                                          
                                              scene->addWidget(svgWid1);
                                              scene->addWidget(svgWid2);
                                              scene->addWidget(svgWid3);
                                              scene->addWidget(svgWid4);
                                          
                                              ui->graphicsView->setScene(scene);
                                          
                                          jsulmJ 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