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. QChartView or QGraphicScene
Forum Updated to NodeBB v4.3 + New Features

QChartView or QGraphicScene

Scheduled Pinned Locked Moved Solved General and Desktop
13 Posts 3 Posters 5.8k Views 3 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.
  • Z Offline
    Z Offline
    Zhitoune
    wrote on last edited by
    #2

    I actually have a more pressing matter

    I'm trying to compile :

    #ifndef CHARTWIDGET_H
    #define CHARTWIDGET_H
    
    #include <QObject>
    #include <QtWidgets/QWidget>
    
    #include <QtCharts/QChartGlobal>
    
    QT_CHARTS_BEGIN_NAMESPACE
    class QChartView;
    class QChart;
    QT_CHARTS_END_NAMESPACE
    
    
    class chartWidget : public QWidget
    {
        Q_OBJECT
    
    public:
        explicit chartWidget(QWidget *parent);
        ~chartWidget();
    
    private:   
        QChart *m_chart;
        QScatterSeries *m_scSerie;
        QLineSeries *m_lineSerie;
        QChartView *m_chartView;
    
    };
    #endif // CHART_H
    

    And I get "QChart does not name a type"
    I' don't know what is wrong with this code I almost entirely copied the code from the "chartthemes" exemple....
    any help would be welcome :D

    1 Reply Last reply
    0
    • SGaistS Offline
      SGaistS Offline
      SGaist
      Lifetime Qt Champion
      wrote on last edited by
      #3

      Hi

      Did you add QT += charts to your .pro file ?

      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
      1
      • Z Offline
        Z Offline
        Zhitoune
        wrote on last edited by
        #4

        Thanks for your reply.
        Yes i did , but it still doesn't work....
        here is my .pro just in case :

        #-------------------------------------------------
        #
        # Project created by QtCreator 2017-07-27T14:27:37
        #
        #-------------------------------------------------
        
        QT       += core gui \
               charts
        
        
        greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
        
        TARGET = aoFcs
        TEMPLATE = app
        
        # The following define makes your compiler emit warnings if you use
        # any feature of Qt which as been marked as deprecated (the exact warnings
        # depend on your compiler). Please consult the documentation of the
        # deprecated API in order to know how to port your code away from it.
        DEFINES += QT_DEPRECATED_WARNINGS
        
        # You can also make your code fail to compile if you use deprecated APIs.
        # In order to do so, uncomment the following line.
        # You can also select to disable deprecated APIs only up to a certain version of Qt.
        #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0
        
        
        SOURCES += main.cpp\
           tools.cpp \
           chartWidget.cpp \
           mainWindow.cpp \
           settingWidget.cpp
        
        HEADERS  += \
           tools.h \
           chartWidget.h \
           mainWindow.h \
           settingWidget.h
        
        
        1 Reply Last reply
        0
        • SGaistS Offline
          SGaistS Offline
          SGaist
          Lifetime Qt Champion
          wrote on last edited by
          #5

          And re-ran qmake after adding the module ?

          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
          • Z Offline
            Z Offline
            Zhitoune
            wrote on last edited by
            #6

            It still doesn't work.
            I compared qmake and make instruction of my project and a qt example that works and they are striclty the same apart from the directory adress.

            1 Reply Last reply
            0
            • Z Offline
              Z Offline
              Zhitoune
              wrote on last edited by
              #7

              So apparently declaring

              #include <QtCharts/QChartGlobal>
              

              was not enough

              I had to declare :

              #include <QtCharts/QChartGlobal>
              #include <QtCharts/QChart>
              #include <QtCharts/QChartView>
              #include <QtCharts/QLineSeries>
              #include <QtCharts/QScatterSeries>
              

              Don't ask me why it works in the examples and not in my project...
              Thanks for you help!

              JKSHJ 1 Reply Last reply
              0
              • SGaistS Offline
                SGaistS Offline
                SGaist
                Lifetime Qt Champion
                wrote on last edited by
                #8

                What example are you referring to ?

                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
                • Z Offline
                  Z Offline
                  Zhitoune
                  wrote on last edited by
                  #9

                  it was themedWidget

                  1 Reply Last reply
                  0
                  • SGaistS Offline
                    SGaistS Offline
                    SGaist
                    Lifetime Qt Champion
                    wrote on last edited by
                    #10

                    Where did you get that example ?

                    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
                    • Z Offline
                      Z Offline
                      Zhitoune
                      wrote on last edited by
                      #11

                      in qt creator.

                      1 Reply Last reply
                      0
                      • SGaistS Offline
                        SGaistS Offline
                        SGaist
                        Lifetime Qt Champion
                        wrote on last edited by
                        #12

                        Can you give the exact name please ?

                        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
                        • Z Zhitoune

                          So apparently declaring

                          #include <QtCharts/QChartGlobal>
                          

                          was not enough

                          I had to declare :

                          #include <QtCharts/QChartGlobal>
                          #include <QtCharts/QChart>
                          #include <QtCharts/QChartView>
                          #include <QtCharts/QLineSeries>
                          #include <QtCharts/QScatterSeries>
                          

                          Don't ask me why it works in the examples and not in my project...
                          Thanks for you help!

                          JKSHJ Online
                          JKSHJ Online
                          JKSH
                          Moderators
                          wrote on last edited by
                          #13

                          @Zhitoune said in QChartView or QGraphicScene:

                          So apparently declaring

                          #include <QtCharts/QChartGlobal>
                          

                          was not enough

                          I had to declare :

                          #include <QtCharts/QChartGlobal>
                          #include <QtCharts/QChart>
                          #include <QtCharts/QChartView>
                          #include <QtCharts/QLineSeries>
                          #include <QtCharts/QScatterSeries>
                          

                          There are two step you should take to do this correctly.

                          First, use Forward Declarations in your header:

                          class QChart;
                          class QChartView;
                          class QLineSeries;
                          class QScatterSeries;
                          

                          You need the forward declarations because your header contains the pointers QChart*, QChartView*, QLineSeries*, and QScatterSeries*.

                          Second, include the relevant headers in your .cpp file:

                          #include <QtCharts/QChart>
                          #include <QtCharts/QChartView>
                          #include <QtCharts/QLineSeries>
                          #include <QtCharts/QScatterSeries>
                          
                          // OR, even better:
                          #include <QChart>
                          #include <QChartView>
                          #include <QLineSeries>
                          #include <QScatterSeries>
                          

                          Don't ask me why it works in the examples and not in my project...

                          One reason is because the example does not refer to QLineSeries or QScatterSeries in the header: That's why the example doesn't need to forward-declare these two classes.

                          Note that the example:

                          1. Forward-declares QChart and QChartView in the header file: https://doc.qt.io/qt-5/qtcharts-chartthemes-themewidget-h.html
                          2. #includes lots of chart-related classes in the .cpp file: https://doc.qt.io/qt-5/qtcharts-chartthemes-themewidget-cpp.html

                          Finally, you can get rid of QT_CHARTS_BEGIN_NAMESPACE and QT_CHARTS_END_NAMESPACE from your code. These macros are not strictly necessary.

                          Qt Doc Search for browsers: forum.qt.io/topic/35616/web-browser-extension-for-improved-doc-searches

                          1 Reply Last reply
                          1

                          • Login

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