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. Creating a chart with multiple datas
Forum Updated to NodeBB v4.3 + New Features

Creating a chart with multiple datas

Scheduled Pinned Locked Moved Unsolved General and Desktop
qt5chart
29 Posts 3 Posters 4.8k 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.
  • J jsulm
    26 Jan 2021, 14:34

    @suslucoder I really don't understand why it is so hard! Please try to figure out such trivial things by yourself.

    MainWindow::MainWindow(QWidget *parent)
       : QMainWindow(parent)
       , ui(new Ui::MainWindow)
    {
       ui->setupUi(this);
       CreateChart();
       QString file("/home/ilknur/FourLineChart/Data1.txt");
       QString file2("/home/ilknur/FourLineChart/Data2.txt");
       QString file3("/home/ilknur/FourLineChart/Data3.txt");
       QString file4("/home/ilknur/FourLineChart/Data4.txt");
       ReadFile(file);
       ReadFile(file2);
       ReadFile(file3);
       ReadFile(file4);
    

    Or shorter:

    
    MainWindow::MainWindow(QWidget *parent)
       : QMainWindow(parent)
       , ui(new Ui::MainWindow)
    {
       ui->setupUi(this);
       CreateChart();
       ReadFile("/home/ilknur/FourLineChart/Data1.txt");
       ReadFile("/home/ilknur/FourLineChart/Data2.txt");
       ReadFile("/home/ilknur/FourLineChart/Data3.txt");
       ReadFile("/home/ilknur/FourLineChart/Data4.txt");
    
    D Offline
    D Offline
    deleted286
    wrote on 26 Jan 2021, 14:39 last edited by
    #21

    @jsulm said in Creating a chart with multiple datas:

    MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
    {
    ui->setupUi(this);
    CreateChart();
    ReadFile("/home/ilknur/FourLineChart/Data1.txt");
    ReadFile("/home/ilknur/FourLineChart/Data2.txt");
    ReadFile("/home/ilknur/FourLineChart/Data3.txt");
    ReadFile("/home/ilknur/FourLineChart/Data4.txt");

    I've do it in that way and i have

    void MainWindow::ReadFile(QString file)
    {
           QFile(file);
    
           if(file.open(QIODevice::ReadOnly))
           {
               QTextStream in(&file);
               while (!in.atEnd()) {
                   QString line = in.readLine();
                   QStringList list = line.split(QLatin1Char(' '), QString::SkipEmptyParts);
                   for (const QString &entry : list)
                   {
                       double num = entry.toDouble();
                       qDebug() << num;
                        // pick correct queue here
                       queue.enqueue(num);
                   }
               }
           }
    }
    

    I've got a lot of errors:

    : In member function ‘void MainWindow::ReadFile(QString)’:
    : error: declaration of ‘QFile file’ shadows a parameter
    error: declaration of ‘QFile file’ shadows a parameter
    QFile(file);
    ^

    J 1 Reply Last reply 26 Jan 2021, 14:40
    0
    • D deleted286
      26 Jan 2021, 14:39

      @jsulm said in Creating a chart with multiple datas:

      MainWindow::MainWindow(QWidget *parent)
      : QMainWindow(parent)
      , ui(new Ui::MainWindow)
      {
      ui->setupUi(this);
      CreateChart();
      ReadFile("/home/ilknur/FourLineChart/Data1.txt");
      ReadFile("/home/ilknur/FourLineChart/Data2.txt");
      ReadFile("/home/ilknur/FourLineChart/Data3.txt");
      ReadFile("/home/ilknur/FourLineChart/Data4.txt");

      I've do it in that way and i have

      void MainWindow::ReadFile(QString file)
      {
             QFile(file);
      
             if(file.open(QIODevice::ReadOnly))
             {
                 QTextStream in(&file);
                 while (!in.atEnd()) {
                     QString line = in.readLine();
                     QStringList list = line.split(QLatin1Char(' '), QString::SkipEmptyParts);
                     for (const QString &entry : list)
                     {
                         double num = entry.toDouble();
                         qDebug() << num;
                          // pick correct queue here
                         queue.enqueue(num);
                     }
                 }
             }
      }
      

      I've got a lot of errors:

      : In member function ‘void MainWindow::ReadFile(QString)’:
      : error: declaration of ‘QFile file’ shadows a parameter
      error: declaration of ‘QFile file’ shadows a parameter
      QFile(file);
      ^

      J Offline
      J Offline
      jsulm
      Lifetime Qt Champion
      wrote on 26 Jan 2021, 14:40 last edited by
      #22

      @suslucoder said in Creating a chart with multiple datas:

      QFile(file);

      Again easy to fix:

      void MainWindow::ReadFile(QString filePath)
      {
             QFile file(filePath);
      
             if(file.open(QIODevice::ReadOnly))
      

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

      D 1 Reply Last reply 26 Jan 2021, 14:42
      0
      • J jsulm
        26 Jan 2021, 14:40

        @suslucoder said in Creating a chart with multiple datas:

        QFile(file);

        Again easy to fix:

        void MainWindow::ReadFile(QString filePath)
        {
               QFile file(filePath);
        
               if(file.open(QIODevice::ReadOnly))
        
        D Offline
        D Offline
        deleted286
        wrote on 26 Jan 2021, 14:42 last edited by
        #23

        @jsulm okey. We did it in that way. But i have

        void MainWindow::Timer_Slot()
        {
            static float q_x=0;
            static float q_x2=0;
            static float q_x3=0;
            static float q_x4=0;
        
            if(!queue.isEmpty())
                {
                   double num=queue.dequeue();
                   q_x += 0.1;
                   series->append(q_x, num);
                   chart->scroll(10, 0);
                   chart->update();
                   qDebug() << q_x << num;
        
                }
            if(!queue2.isEmpty())
                {
                   double num2=queue2.dequeue();
                   q_x2 += 0.1;
                   series2->append(q_x2, num2);
                   chart->scroll(10, 0);
                   chart->update();
                   qDebug() << q_x2 << num2;
        
        
                }
            if(!queue3.isEmpty())
                {
                   double num3=queue3.dequeue();
                   q_x3 += 0.1;
                   series3->append(q_x3, num3);
                   chart->scroll(10, 0);
                   chart->update();
                }
        
            if(!queue4.isEmpty())
                {
                   double num4=queue4.dequeue();
                   q_x4 += 0.1;
                   series4->append(q_x4, num4);
                   chart->scroll(10, 0);
                   chart->update();
                }
        }
        

        What will happen my other queues, in ReadFile() ?

        J 1 Reply Last reply 26 Jan 2021, 14:45
        0
        • D deleted286
          26 Jan 2021, 14:42

          @jsulm okey. We did it in that way. But i have

          void MainWindow::Timer_Slot()
          {
              static float q_x=0;
              static float q_x2=0;
              static float q_x3=0;
              static float q_x4=0;
          
              if(!queue.isEmpty())
                  {
                     double num=queue.dequeue();
                     q_x += 0.1;
                     series->append(q_x, num);
                     chart->scroll(10, 0);
                     chart->update();
                     qDebug() << q_x << num;
          
                  }
              if(!queue2.isEmpty())
                  {
                     double num2=queue2.dequeue();
                     q_x2 += 0.1;
                     series2->append(q_x2, num2);
                     chart->scroll(10, 0);
                     chart->update();
                     qDebug() << q_x2 << num2;
          
          
                  }
              if(!queue3.isEmpty())
                  {
                     double num3=queue3.dequeue();
                     q_x3 += 0.1;
                     series3->append(q_x3, num3);
                     chart->scroll(10, 0);
                     chart->update();
                  }
          
              if(!queue4.isEmpty())
                  {
                     double num4=queue4.dequeue();
                     q_x4 += 0.1;
                     series4->append(q_x4, num4);
                     chart->scroll(10, 0);
                     chart->update();
                  }
          }
          

          What will happen my other queues, in ReadFile() ?

          J Offline
          J Offline
          jsulm
          Lifetime Qt Champion
          wrote on 26 Jan 2021, 14:45 last edited by
          #24

          @suslucoder said in Creating a chart with multiple datas:

          What will happen my other queues, in ReadFile() ?

          Can't you simply use one queue?
          If not then extend the readFile() method:

          void MainWindow::ReadFile(const QString &file, QQueue<double> &queue)
          {
          ...
          

          And pass queue as second parameter.

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

          D 1 Reply Last reply 26 Jan 2021, 14:50
          0
          • J jsulm
            26 Jan 2021, 14:45

            @suslucoder said in Creating a chart with multiple datas:

            What will happen my other queues, in ReadFile() ?

            Can't you simply use one queue?
            If not then extend the readFile() method:

            void MainWindow::ReadFile(const QString &file, QQueue<double> &queue)
            {
            ...
            

            And pass queue as second parameter.

            D Offline
            D Offline
            deleted286
            wrote on 26 Jan 2021, 14:50 last edited by
            #25

            @jsulm said in Creating a chart with multiple datas:

            Can't you simply use one queue?

            When i use one queue, how can i differ my datas?
            Txt files have different values, and i will show all of them in a line chart with different color

            J 1 Reply Last reply 26 Jan 2021, 14:52
            0
            • D deleted286
              26 Jan 2021, 14:50

              @jsulm said in Creating a chart with multiple datas:

              Can't you simply use one queue?

              When i use one queue, how can i differ my datas?
              Txt files have different values, and i will show all of them in a line chart with different color

              J Offline
              J Offline
              jsulm
              Lifetime Qt Champion
              wrote on 26 Jan 2021, 14:52 last edited by jsulm
              #26

              @suslucoder Then do like I suggested:

              void MainWindow::ReadFile(const QString &file, QQueue<double> &queue)
              {
              ...
              }
              ...
              ReadFile("/home/ilknur/FourLineChart/Data1.txt", queue);
              ReadFile("/home/ilknur/FourLineChart/Data2.txt", queue1);
              ReadFile("/home/ilknur/FourLineChart/Data3.txt", queue2);
              ReadFile("/home/ilknur/FourLineChart/Data4.txt", queue3);
              

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

              D 1 Reply Last reply 26 Jan 2021, 14:55
              1
              • J jsulm
                26 Jan 2021, 14:52

                @suslucoder Then do like I suggested:

                void MainWindow::ReadFile(const QString &file, QQueue<double> &queue)
                {
                ...
                }
                ...
                ReadFile("/home/ilknur/FourLineChart/Data1.txt", queue);
                ReadFile("/home/ilknur/FourLineChart/Data2.txt", queue1);
                ReadFile("/home/ilknur/FourLineChart/Data3.txt", queue2);
                ReadFile("/home/ilknur/FourLineChart/Data4.txt", queue3);
                
                D Offline
                D Offline
                deleted286
                wrote on 26 Jan 2021, 14:55 last edited by
                #27

                @jsulm in .h file i have

                 ```
                 QQueue<double> queue;
                 QQueue<double> queue2;
                 QQueue<double> queue3;
                 QQueue<double> queue4;
                
                
                Should i delete them?
                J 1 Reply Last reply 26 Jan 2021, 14:55
                0
                • D deleted286
                  26 Jan 2021, 14:55

                  @jsulm in .h file i have

                   ```
                   QQueue<double> queue;
                   QQueue<double> queue2;
                   QQueue<double> queue3;
                   QQueue<double> queue4;
                  
                  
                  Should i delete them?
                  J Offline
                  J Offline
                  jsulm
                  Lifetime Qt Champion
                  wrote on 26 Jan 2021, 14:55 last edited by
                  #28

                  @suslucoder said in Creating a chart with multiple datas:

                  Should i delete them?

                  No. Why would you?

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

                  D 1 Reply Last reply 26 Jan 2021, 20:03
                  0
                  • J jsulm
                    26 Jan 2021, 14:55

                    @suslucoder said in Creating a chart with multiple datas:

                    Should i delete them?

                    No. Why would you?

                    D Offline
                    D Offline
                    deleted286
                    wrote on 26 Jan 2021, 20:03 last edited by
                    #29
                    This post is deleted!
                    1 Reply Last reply
                    0

                    21/29

                    26 Jan 2021, 14:39

                    • Login

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