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

Line graph Plot in Qdialog

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