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 6.7k 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.
  • D deleted286

    @Pl45m4 where should i store

    QString file("/home/ilknur/Chart/Data1.txt");
    // ...
    // ...
    // all your files
    
    

    And i have 4 different files. In this case,

    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");
    
    Pl45m4P Offline
    Pl45m4P Offline
    Pl45m4
    wrote on last edited by
    #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.

    ^


    If debugging is the process of removing software bugs, then programming must be the process of putting them in.

    ~E. W. Dijkstra

    D 1 Reply Last reply
    0
    • Pl45m4P Pl45m4

      @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 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.

      jsulmJ 1 Reply Last reply
      0
      • D deleted286

        @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.

        jsulmJ Offline
        jsulmJ Offline
        jsulm
        Lifetime Qt Champion
        wrote on 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
        0
        • jsulmJ jsulm

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

          jsulmJ 1 Reply Last reply
          0
          • D deleted286

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

            jsulmJ Offline
            jsulmJ Offline
            jsulm
            Lifetime Qt Champion
            wrote on 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
            0
            • jsulmJ jsulm

              @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 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() ?

              jsulmJ 1 Reply Last reply
              0
              • D deleted286

                @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() ?

                jsulmJ Offline
                jsulmJ Offline
                jsulm
                Lifetime Qt Champion
                wrote on 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
                0
                • jsulmJ jsulm

                  @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 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

                  jsulmJ 1 Reply Last reply
                  0
                  • D deleted286

                    @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

                    jsulmJ Offline
                    jsulmJ Offline
                    jsulm
                    Lifetime Qt Champion
                    wrote on 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
                    1
                    • jsulmJ jsulm

                      @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 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?
                      jsulmJ 1 Reply Last reply
                      0
                      • D deleted286

                        @jsulm in .h file i have

                         ```
                         QQueue<double> queue;
                         QQueue<double> queue2;
                         QQueue<double> queue3;
                         QQueue<double> queue4;
                        
                        
                        Should i delete them?
                        jsulmJ Offline
                        jsulmJ Offline
                        jsulm
                        Lifetime Qt Champion
                        wrote on 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
                        0
                        • jsulmJ jsulm

                          @suslucoder said in Creating a chart with multiple datas:

                          Should i delete them?

                          No. Why would you?

                          D Offline
                          D Offline
                          deleted286
                          wrote on last edited by
                          #29
                          This post is deleted!
                          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