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

Creating a chart with multiple datas

Scheduled Pinned Locked Moved Unsolved General and Desktop
qt5chart
29 Posts 3 Posters 4.1k Views
  • 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.
  • P Pl45m4
    26 Jan 2021, 14:18

    @suslucoder said in Creating a chart with multiple datas:

    where should i store

    Do you even read what we wrote?

    @Pl45m4 said in Creating a chart with multiple datas:

    Then just call this read function ones for every file you want to read (with the file path as argument)
    ReadFile(file);

    Or even make a QStringList with all your filenames and call this function for every element of your list.

    ^

    D Offline
    D Offline
    deleted286
    wrote on 26 Jan 2021, 14:28 last edited by
    #19

    @Pl45m4 said in

    Do you even read what we wrote?

    Of course. I just confused.

    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");
    
    MainWindow::MainWindow(QWidget *parent)
       : QMainWindow(parent)
       , ui(new Ui::MainWindow)
    {
       ui->setupUi(this);
       CreateChart();
       ReadFile(file);
       ReadFile(file2);
       ReadFile(file3);
       ReadFile(file4);
    
    
    
    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 miss something. But i dont know.

    J 1 Reply Last reply 26 Jan 2021, 14:34
    0
    • D deleted286
      26 Jan 2021, 14:28

      @Pl45m4 said in

      Do you even read what we wrote?

      Of course. I just confused.

      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");
      
      MainWindow::MainWindow(QWidget *parent)
         : QMainWindow(parent)
         , ui(new Ui::MainWindow)
      {
         ui->setupUi(this);
         CreateChart();
         ReadFile(file);
         ReadFile(file2);
         ReadFile(file3);
         ReadFile(file4);
      
      
      
      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 miss something. But i dont know.

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

      @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");
      

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

      D 1 Reply Last reply 26 Jan 2021, 14:39
      0
      • 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

                        28/29

                        26 Jan 2021, 14:55

                        • Login

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