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 use SVG
Forum Updated to NodeBB v4.3 + New Features

How to use SVG

Scheduled Pinned Locked Moved Unsolved General and Desktop
svgiconwidget
33 Posts 7 Posters 17.3k 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.
  • S Offline
    S Offline
    SGaist
    Lifetime Qt Champion
    wrote on 2 Jul 2021, 16:47 last edited by
    #14

    No that's the Qt Creator version. There's no Qt 4.14.

    You have to take a look at the kit you are using.

    Interested in AI ? www.idiap.ch
    Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

    S 1 Reply Last reply 2 Jul 2021, 16:50
    0
    • S SGaist
      2 Jul 2021, 16:47

      No that's the Qt Creator version. There's no Qt 4.14.

      You have to take a look at the kit you are using.

      S Offline
      S Offline
      Saviz
      wrote on 2 Jul 2021, 16:50 last edited by
      #15

      @SGaist

      I took a look at the kit as you instructed.

      The kit version is: Qt 6.0.3 64bit

      1 Reply Last reply
      0
      • J Offline
        J Offline
        JoeCFD
        wrote on 2 Jul 2021, 17:07 last edited by JoeCFD 7 Feb 2021, 17:16
        #16

        It was introduced from 4.1.
        https://doc.qt.io/qt-5/qsvgwidget.html
        QT += core gui widgets svg <=== you need widgets as well for qsvgwidget

        If you simply need a QPixmap from a svg source for other widgets, use QSvgRenderer to paint one.

        1 Reply Last reply
        0
        • M mrjj
          2 Jul 2021, 12:05

          @Saviz

          Hi
          it should work unless really old Qt.

          Could you try in build menu to use Clean all, run qmake and then press the run ?

          S Offline
          S Offline
          Saviz
          wrote on 2 Jul 2021, 17:30 last edited by Saviz 7 Feb 2021, 17:30
          #17

          @mrjj

          I tried doing what you suggested. Unfortunately it didn't work.

          I first cleaned the project and then ran qmake but I still get the same errors.
          Maybe I am doing something else wrong? (Like not including something?)

          J 1 Reply Last reply 2 Jul 2021, 17:44
          0
          • S Saviz
            2 Jul 2021, 17:30

            @mrjj

            I tried doing what you suggested. Unfortunately it didn't work.

            I first cleaned the project and then ran qmake but I still get the same errors.
            Maybe I am doing something else wrong? (Like not including something?)

            J Offline
            J Offline
            JoeCFD
            wrote on 2 Jul 2021, 17:44 last edited by JoeCFD 7 Feb 2021, 17:47
            #18

            @Saviz CONFIG += c++17 you also need 17 for Qt 6.
            Show this line of your Makefile:
            LIBS = $(SUBLIBS)
            it should have -lQt5Svg

            S 1 Reply Last reply 3 Jul 2021, 04:30
            0
            • S Offline
              S Offline
              SGaist
              Lifetime Qt Champion
              wrote on 2 Jul 2021, 18:02 last edited by
              #19

              Drop the C++ CONFIG, you do not need that currently.

              You should also consider updating to the latest Qt 6.1.

              Interested in AI ? www.idiap.ch
              Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

              1 Reply Last reply
              0
              • J Offline
                J Offline
                JoeCFD
                wrote on 2 Jul 2021, 18:14 last edited by JoeCFD 7 Feb 2021, 18:29
                #20

                @Saviz Another possibility is svg is not installed. Run MaintenaceTool to add it. I just installed Qt 6.1.2 in which svg is included. If you can find it in the Qt lib dir, check the path settings for Qt.

                S 1 Reply Last reply 3 Jul 2021, 05:03
                0
                • J JoeCFD
                  2 Jul 2021, 17:44

                  @Saviz CONFIG += c++17 you also need 17 for Qt 6.
                  Show this line of your Makefile:
                  LIBS = $(SUBLIBS)
                  it should have -lQt5Svg

                  S Offline
                  S Offline
                  Saviz
                  wrote on 3 Jul 2021, 04:30 last edited by Saviz 7 Mar 2021, 04:31
                  #21

                  @JoeCFD

                  I don't see this line in my qmake file. Maybe that is the reason it doesn't work. Should I add it?

                  1 Reply Last reply
                  0
                  • J JoeCFD
                    2 Jul 2021, 18:14

                    @Saviz Another possibility is svg is not installed. Run MaintenaceTool to add it. I just installed Qt 6.1.2 in which svg is included. If you can find it in the Qt lib dir, check the path settings for Qt.

                    S Offline
                    S Offline
                    Saviz
                    wrote on 3 Jul 2021, 05:03 last edited by
                    #22

                    @JoeCFD said in How to use SVG:

                    MaintenaceTool

                    If I want to only install the SVG components, then what component do I have to select in the MaintenaceTool to install?

                    M 1 Reply Last reply 3 Jul 2021, 05:12
                    0
                    • S Saviz
                      3 Jul 2021, 05:03

                      @JoeCFD said in How to use SVG:

                      MaintenaceTool

                      If I want to only install the SVG components, then what component do I have to select in the MaintenaceTool to install?

                      M Offline
                      M Offline
                      mrjj
                      Lifetime Qt Champion
                      wrote on 3 Jul 2021, 05:12 last edited by mrjj 7 Mar 2021, 05:13
                      #23

                      @Saviz

                      Hi

                      It should be included in any of the installer options. Its not a standalone option.

                      I don't have Qt6 to test with.

                      So the project I linked cannot run under Qt6 ?

                      complains about svg ?

                      Try install the Qt 6.1.2 as @JoeCFD suggests

                      S 1 Reply Last reply 3 Jul 2021, 05:43
                      0
                      • M mrjj
                        3 Jul 2021, 05:12

                        @Saviz

                        Hi

                        It should be included in any of the installer options. Its not a standalone option.

                        I don't have Qt6 to test with.

                        So the project I linked cannot run under Qt6 ?

                        complains about svg ?

                        Try install the Qt 6.1.2 as @JoeCFD suggests

                        S Offline
                        S Offline
                        Saviz
                        wrote on 3 Jul 2021, 05:43 last edited by Saviz 7 Mar 2021, 05:53
                        #24

                        @mrjj

                        I will give it a try. But my speed is not the best. It may take a while to download the new version. But I will report back how it went. Thank you all for your help

                        M 1 Reply Last reply 3 Jul 2021, 06:25
                        0
                        • S Saviz
                          3 Jul 2021, 05:43

                          @mrjj

                          I will give it a try. But my speed is not the best. It may take a while to download the new version. But I will report back how it went. Thank you all for your help

                          M Offline
                          M Offline
                          mrjj
                          Lifetime Qt Champion
                          wrote on 3 Jul 2021, 06:25 last edited by
                          #25

                          @Saviz

                          Hi
                          Else a sure bet is installing Qt5.15.
                          While v6 does offer new things
                          https://wiki.qt.io/New_Features_in_Qt_6.0
                          Its mostly if you are using QML and it still has lots of features missing planned
                          for some later releases.

                          S 1 Reply Last reply 3 Jul 2021, 09:01
                          1
                          • M mrjj
                            3 Jul 2021, 06:25

                            @Saviz

                            Hi
                            Else a sure bet is installing Qt5.15.
                            While v6 does offer new things
                            https://wiki.qt.io/New_Features_in_Qt_6.0
                            Its mostly if you are using QML and it still has lots of features missing planned
                            for some later releases.

                            S Offline
                            S Offline
                            Saviz
                            wrote on 3 Jul 2021, 09:01 last edited by
                            #26

                            @mrjj

                            Okay, I will try it. By the way I have one last question. Why isn't there a widget for SVG in QT Designer by default?

                            M 1 Reply Last reply 3 Jul 2021, 09:08
                            0
                            • S Saviz
                              3 Jul 2021, 09:01

                              @mrjj

                              Okay, I will try it. By the way I have one last question. Why isn't there a widget for SVG in QT Designer by default?

                              M Offline
                              M Offline
                              mrjj
                              Lifetime Qt Champion
                              wrote on 3 Jul 2021, 09:08 last edited by
                              #27

                              @Saviz

                              • Why isn't there a widget for SVG in QT Designer by default?

                              Too much work I would guess. To allow a Widget to be used in design time, a plugin must be made and maintained across many Designers.
                              And QSvgWidget doesn't have any properties to set at Design time. (besides the svg file) so I gues sit was
                              not worth the effort.

                              You can use the Producer Promote feature to allow a Qwidget as a place holder in Designer and then app is run its
                              the SVG one.

                              S 1 Reply Last reply 3 Jul 2021, 11:56
                              2
                              • M mrjj
                                3 Jul 2021, 09:08

                                @Saviz

                                • Why isn't there a widget for SVG in QT Designer by default?

                                Too much work I would guess. To allow a Widget to be used in design time, a plugin must be made and maintained across many Designers.
                                And QSvgWidget doesn't have any properties to set at Design time. (besides the svg file) so I gues sit was
                                not worth the effort.

                                You can use the Producer Promote feature to allow a Qwidget as a place holder in Designer and then app is run its
                                the SVG one.

                                S Offline
                                S Offline
                                Saviz
                                wrote on 3 Jul 2021, 11:56 last edited by
                                #28

                                @mrjj

                                Very interesting. Is there a documentation that I can use for the Producer Promote feature so I can learn it?

                                M 1 Reply Last reply 3 Jul 2021, 12:31
                                0
                                • S Saviz
                                  3 Jul 2021, 11:56

                                  @mrjj

                                  Very interesting. Is there a documentation that I can use for the Producer Promote feature so I can learn it?

                                  M Offline
                                  M Offline
                                  mrjj
                                  Lifetime Qt Champion
                                  wrote on 3 Jul 2021, 12:31 last edited by mrjj 7 Mar 2021, 12:32
                                  #29

                                  @Saviz

                                  Hi
                                  Its very handy.

                                  In your use case you place a QWidget on the form, right-click and choose to promote.
                                  Then tell it QSvgWidget for class name and it will guess on QSvgWidget.h
                                  Then press Add (+), then then promote.

                                  https://doc.qt.io/qt-5/designer-using-custom-widgets.html

                                  https://stackoverflow.com/questions/33588289/what-is-promote-to-feature-in-qt-creator-and-how-does-it-work

                                  Do note:
                                  Accessing it via Ui-> is possible and you can call the real functions from code, just like any other widget.

                                  S 1 Reply Last reply 3 Jul 2021, 12:56
                                  1
                                  • M mrjj
                                    3 Jul 2021, 12:31

                                    @Saviz

                                    Hi
                                    Its very handy.

                                    In your use case you place a QWidget on the form, right-click and choose to promote.
                                    Then tell it QSvgWidget for class name and it will guess on QSvgWidget.h
                                    Then press Add (+), then then promote.

                                    https://doc.qt.io/qt-5/designer-using-custom-widgets.html

                                    https://stackoverflow.com/questions/33588289/what-is-promote-to-feature-in-qt-creator-and-how-does-it-work

                                    Do note:
                                    Accessing it via Ui-> is possible and you can call the real functions from code, just like any other widget.

                                    S Offline
                                    S Offline
                                    Saviz
                                    wrote on 3 Jul 2021, 12:56 last edited by Saviz 7 Mar 2021, 12:57
                                    #30

                                    @mrjj

                                    So, if I want to create a custom widget for SVG, how can I do that? Is there an example that I can follow for promoting a widget to SVG?

                                    (I ask this because I really want to use SVG as default and I need a solution.)
                                    (I am also a beginner so I have no idea where to start :) )

                                    M 1 Reply Last reply 3 Jul 2021, 22:09
                                    0
                                    • S Saviz
                                      3 Jul 2021, 12:56

                                      @mrjj

                                      So, if I want to create a custom widget for SVG, how can I do that? Is there an example that I can follow for promoting a widget to SVG?

                                      (I ask this because I really want to use SVG as default and I need a solution.)
                                      (I am also a beginner so I have no idea where to start :) )

                                      M Offline
                                      M Offline
                                      mrjj
                                      Lifetime Qt Champion
                                      wrote on 3 Jul 2021, 22:09 last edited by
                                      #31

                                      @Saviz
                                      Hi
                                      What you mean with custom widget for SVG ?

                                      You mean your own classed based on QSvgWidget ?

                                      Or to simply use QSvgWidget ?

                                      1 Reply Last reply
                                      0
                                      • L Offline
                                        L Offline
                                        Labidi Ahmed
                                        wrote on 2 May 2022, 13:37 last edited by
                                        #32

                                        So i am using Qt 6.2.2 & ran into the same problem the solution was :

                                        in the .pro file its QT+= svg svgwidgets
                                        now you can

                                        #include <QSvgWidgets>
                                        

                                        found it in the included svgviewer example in QT qtsvg-svgviewer-example

                                        hope i helped

                                        1 Reply Last reply
                                        2
                                        • SMEasyS Offline
                                          SMEasyS Offline
                                          SMEasy
                                          wrote on 12 Feb 2023, 20:06 last edited by
                                          #33

                                          As explained here, QSvgWidget has been moved to a new module called QtSvgWidgets. According to the documentation:

                                          Header: #include <QSvgWidget>
                                          CMake: find_package(Qt6 REQUIRED COMPONENTS SvgWidgets) target_link_libraries(mytarget PRIVATE Qt6::SvgWidgets)
                                          qmake: QT += svgwidgets
                                          Inherits: QWidget

                                          So in Qt6 the solution is following:

                                          QT += svgwidgets
                                          
                                          1 Reply Last reply
                                          2

                                          • Login

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