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. Line graph Plot in Qdialog
Forum Updated to NodeBB v4.3 + New Features

Line graph Plot in Qdialog

Scheduled Pinned Locked Moved Unsolved General and Desktop
16 Posts 4 Posters 5.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.
  • MeenuM Meenu

    Error QtCharts/QChartView: No such file or directory. Can i install QtChart Separately. I'm using QT Creator 3.5.1 based on QT 5.6.0(GCC 5.3.1 20160413, 32 bit). I was seen this example from Google. but i don't know how to implement. Kindly explain step by step.

    ? Offline
    ? Offline
    A Former User
    wrote on last edited by
    #4

    @Meenu It's an add-on module and should be provided by Ubuntu's package manager.

    1 Reply Last reply
    0
    • MeenuM Offline
      MeenuM Offline
      Meenu
      wrote on last edited by
      #5

      how to add manually

      ? 2 Replies Last reply
      0
      • MeenuM Meenu

        how to add manually

        ? Offline
        ? Offline
        A Former User
        wrote on last edited by
        #6

        @Meenu package manager

        1 Reply Last reply
        0
        • MeenuM Meenu

          Error QtCharts/QChartView: No such file or directory. Can i install QtChart Separately. I'm using QT Creator 3.5.1 based on QT 5.6.0(GCC 5.3.1 20160413, 32 bit). I was seen this example from Google. but i don't know how to implement. Kindly explain step by step.

          mrjjM Offline
          mrjjM Offline
          mrjj
          Lifetime Qt Champion
          wrote on last edited by mrjj
          #7

          @Meenu
          hi
          if u only need something really simple. ( ie no zoom etc)
          you can also just draw on an image and show in a Label.

          alternate text

          test project
          https://www.dropbox.com/s/qwde8lb0fkjrrh3/mycheapgraph.zip?dl=0

          its few lines of code

          int GetBarHeight(int MAX) {
          return rand() % (MAX - 5) + 5;
          }

          void MainWindow::on_pushButton_released() {
            int h = ui->label->height();
            int w = ui->label->width();
            QPixmap pix(w, h);
            QPainter paint(&pix);
            pix.fill( Qt::white );
            paint.setPen(QColor(0, 0, 0, 255));
            int y = 0;
            int x = 0;
            int bw = 10; // bar width
            for (int barcount = 0; barcount < 12; ++barcount) {
              paint.setBrush(QColor(255 - x, 34 + x, 255, 255));
              paint.drawRect(x, h - GetBarHeight(h),  bw, h );
              x += bw + 4;
            }
            paint.end();
            ui->label->setPixmap(pix);
          }
          
          ? MeenuM 2 Replies Last reply
          0
          • mrjjM mrjj

            @Meenu
            hi
            if u only need something really simple. ( ie no zoom etc)
            you can also just draw on an image and show in a Label.

            alternate text

            test project
            https://www.dropbox.com/s/qwde8lb0fkjrrh3/mycheapgraph.zip?dl=0

            its few lines of code

            int GetBarHeight(int MAX) {
            return rand() % (MAX - 5) + 5;
            }

            void MainWindow::on_pushButton_released() {
              int h = ui->label->height();
              int w = ui->label->width();
              QPixmap pix(w, h);
              QPainter paint(&pix);
              pix.fill( Qt::white );
              paint.setPen(QColor(0, 0, 0, 255));
              int y = 0;
              int x = 0;
              int bw = 10; // bar width
              for (int barcount = 0; barcount < 12; ++barcount) {
                paint.setBrush(QColor(255 - x, 34 + x, 255, 255));
                paint.drawRect(x, h - GetBarHeight(h),  bw, h );
                x += bw + 4;
              }
              paint.end();
              ui->label->setPixmap(pix);
            }
            
            ? Offline
            ? Offline
            A Former User
            wrote on last edited by
            #8

            @mrjj Nice color gradient ;-)

            1 Reply Last reply
            1
            • MeenuM Meenu

              how to add manually

              ? Offline
              ? Offline
              A Former User
              wrote on last edited by
              #9

              @Meenu This might help you with Ubuntu's package manager: https://help.ubuntu.com/lts/serverguide/apt.html

              MeenuM 1 Reply Last reply
              1
              • mrjjM mrjj

                @Meenu
                hi
                if u only need something really simple. ( ie no zoom etc)
                you can also just draw on an image and show in a Label.

                alternate text

                test project
                https://www.dropbox.com/s/qwde8lb0fkjrrh3/mycheapgraph.zip?dl=0

                its few lines of code

                int GetBarHeight(int MAX) {
                return rand() % (MAX - 5) + 5;
                }

                void MainWindow::on_pushButton_released() {
                  int h = ui->label->height();
                  int w = ui->label->width();
                  QPixmap pix(w, h);
                  QPainter paint(&pix);
                  pix.fill( Qt::white );
                  paint.setPen(QColor(0, 0, 0, 255));
                  int y = 0;
                  int x = 0;
                  int bw = 10; // bar width
                  for (int barcount = 0; barcount < 12; ++barcount) {
                    paint.setBrush(QColor(255 - x, 34 + x, 255, 255));
                    paint.drawRect(x, h - GetBarHeight(h),  bw, h );
                    x += bw + 4;
                  }
                  paint.end();
                  ui->label->setPixmap(pix);
                }
                
                MeenuM Offline
                MeenuM Offline
                Meenu
                wrote on last edited by
                #10

                @mrjj
                I want to plot line graph. so i changed the code like below

                int data[255];
                int i = 0;
                for (i = 0; i < 255; ++i)  data[i] = i;
                for (i = 0; i < 255; ++i)  paint.drawLine(i, data[i], i+1, data[i+1]);
                

                Here How to Set Lable's pixel (0,0) as bottom left corner?
                Now, Graph plotting reversely(Top left corner).

                mrjjM VRoninV 2 Replies Last reply
                0
                • MeenuM Meenu

                  @mrjj
                  I want to plot line graph. so i changed the code like below

                  int data[255];
                  int i = 0;
                  for (i = 0; i < 255; ++i)  data[i] = i;
                  for (i = 0; i < 255; ++i)  paint.drawLine(i, data[i], i+1, data[i+1]);
                  

                  Here How to Set Lable's pixel (0,0) as bottom left corner?
                  Now, Graph plotting reversely(Top left corner).

                  mrjjM Offline
                  mrjjM Offline
                  mrjj
                  Lifetime Qt Champion
                  wrote on last edited by
                  #11

                  @Meenu
                  hi
                  you can change for painter with
                  painter.translate();

                  http://doc.qt.io/qt-5/qpainter.html#translate

                  its not related to the label at all.
                  we draw on image and label just show it :)

                  MeenuM 1 Reply Last reply
                  0
                  • ? A Former User

                    @Meenu This might help you with Ubuntu's package manager: https://help.ubuntu.com/lts/serverguide/apt.html

                    MeenuM Offline
                    MeenuM Offline
                    Meenu
                    wrote on last edited by
                    #12

                    @Wieland Getting Error - chartdataset.cpp:30:36: fatal error: private/chartdataset_p.h: No such file or directory.
                    I was download qtcharts-opensource-src-5.7.0 and installed successfully, like from download directory.

                    > qmake
                    > sudo make
                    

                    line chart from examples working good. i like to implement this chart in my QDialog.
                    Now, i came to my code and simply add

                    #include <QtCharts/QChartView>
                    #include <QtCharts/QLineSeries>
                    

                    how can i link QTChart with my *.Pro File.

                    1 Reply Last reply
                    0
                    • mrjjM mrjj

                      @Meenu
                      hi
                      you can change for painter with
                      painter.translate();

                      http://doc.qt.io/qt-5/qpainter.html#translate

                      its not related to the label at all.
                      we draw on image and label just show it :)

                      MeenuM Offline
                      MeenuM Offline
                      Meenu
                      wrote on last edited by
                      #13

                      @mrjj Thank you. Its Working.

                      paint.translate(0,h);
                      paint.scale(1.0, -1.0);
                      
                      1 Reply Last reply
                      1
                      • MeenuM Meenu

                        @mrjj
                        I want to plot line graph. so i changed the code like below

                        int data[255];
                        int i = 0;
                        for (i = 0; i < 255; ++i)  data[i] = i;
                        for (i = 0; i < 255; ++i)  paint.drawLine(i, data[i], i+1, data[i+1]);
                        

                        Here How to Set Lable's pixel (0,0) as bottom left corner?
                        Now, Graph plotting reversely(Top left corner).

                        VRoninV Offline
                        VRoninV Offline
                        VRonin
                        wrote on last edited by VRonin
                        #14

                        @Meenu said:

                        so i changed the code like below

                        for (i = 0; i < 255; ++i)  paint.drawLine(i, data[i], i+1, data[i+1]);
                        

                        If you cannot see the problem there add #include <array> and change int data[255]; into std::array<int,255> data;

                        "La mort n'est rien, mais vivre vaincu et sans gloire, c'est mourir tous les jours"
                        ~Napoleon Bonaparte

                        On a crusade to banish setIndexWidget() from the holy land of Qt

                        MeenuM 1 Reply Last reply
                        0
                        • VRoninV VRonin

                          @Meenu said:

                          so i changed the code like below

                          for (i = 0; i < 255; ++i)  paint.drawLine(i, data[i], i+1, data[i+1]);
                          

                          If you cannot see the problem there add #include <array> and change int data[255]; into std::array<int,255> data;

                          MeenuM Offline
                          MeenuM Offline
                          Meenu
                          wrote on last edited by
                          #15

                          @VRonin Its plotting random data. nice.

                          1 Reply Last reply
                          0
                          • MeenuM Offline
                            MeenuM Offline
                            Meenu
                            wrote on last edited by
                            #16

                            After install QTChart / QWT chart controls, is possible to use these controls in to QDialog box.
                            How to link with *.PRO File.
                            QWT link process :

                            QWT_DIR = /usr/local/qwt-6.1.3
                            INCLUDEPATH += $$QWT_DIR/include
                            
                            CONFIG(debug, debug|release):LIBS += -L$$QWT_DIR\lib\ \
                            -lqwtd5
                            else:LIBS += -L$$QWT_DIR\lib\ \
                            -lqwt5
                            
                            DEFINES += QWT_DLL
                            

                            is correct?

                            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