Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Mobile and Embedded
  4. after deploying on RPI3 , UploadCSV file take very long time

after deploying on RPI3 , UploadCSV file take very long time

Scheduled Pinned Locked Moved Solved Mobile and Embedded
16 Posts 4 Posters 832 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.
  • D Offline
    D Offline
    dziko147
    wrote on last edited by
    #1

    Hello ,
    I tried to load a CSV file in my App . So I connected a button signal(clicked) to Slot which load a CSV file .
    After deploying my App on Rpi3 target .

    when I click on the button , it takes very long time to load the CSV (about 6 minutes) .
    but finally it load the csv correctly !

    Is it software problem ?

    thank you

    1 Reply Last reply
    0
    • SGaistS Offline
      SGaistS Offline
      SGaist
      Lifetime Qt Champion
      wrote on last edited by
      #2

      Hi,

      You have to give more information:

      • which size is that file ?
      • are you doing any processing on the data ?
      • what are you doing with the data ?
      • which version of Qt are you using ?
      • did you do any benchmarking of your code ?
      • what does the Pi do when you load the file ?

      Interested in AI ? www.idiap.ch
      Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

      1 Reply Last reply
      0
      • D Offline
        D Offline
        dziko147
        wrote on last edited by
        #3

        @SGaist I think the problem is caused by doing processing on the data .
        this is my code :

         while(!inFile.atEnd()){
                QString readedLine =inFile.readLine();
                QStringList listValue = readedLine.split(";");
                cter +=1;
        
                ui->tablewidget2->setRowCount(cter);
        
                ui->tablewidget3->setRowCount(cter);
        
                ui->tablewidget->setRowCount(cter);
                ui->tablewidget4->setRowCount(cter);
                ui->tablewidget5->setRowCount(cter);
        
        
        
                for(int k=0;k<listValue.size();k++){
                    QTableWidgetItem     *Mytable = new QTableWidgetItem(listValue[k]);
                    ui->tablewidget->setItem(cter-1,k,Mytable);
                    ui->tablewidget->hideColumn(0);
                    ui->tablewidget->setItem(cter-1, 8, new QTableWidgetItem(""));
                    ui->tablewidget->setItem(cter-1, 9, new QTableWidgetItem(""));
                    if(k<9)   Mytable->setFlags(Mytable->flags() ^ Qt::ItemIsEditable);// modif la valeur du k pour rendre le champ editable
        
        
                   //setpoint table
                    for(int t=10;t<551;t++){
                        QTableWidgetItem     *Mysetpoint = new QTableWidgetItem(listValue[k]);
        
                        ui->tablewidget2->setItem(cter-1,k,Mysetpoint);
                        ui->tablewidget2->hideColumn(0);
                        ui->tablewidget2->hideRow(t);
                        ui->tablewidget2->setItem(cter-1, 8, new QTableWidgetItem(""));
                        ui->tablewidget2->setItem(cter-1, 9, new QTableWidgetItem(""));
                        if(k<9)   Mysetpoint->setFlags(Mysetpoint->flags() ^ Qt::ItemIsEditable);
        
        
                    }
                    //setpoint table
        
                    for(int a=341;a<549;a++){
                        QTableWidgetItem     *Mytableconfig = new QTableWidgetItem(listValue[k]);
        
                        ui->tablewidget3->setItem(cter-1,k,Mytableconfig);
                        ui->tablewidget3->hideColumn(0);
                        ui->tablewidget3->hideRow(a);
        
                        for(int x=0;x<10;x++){
                            ui->tablewidget3->hideRow(x);
        
                        }
        
        
                        ui->tablewidget3->setItem(cter-1, 8, new QTableWidgetItem(""));
                        ui->tablewidget3->setItem(cter-1, 9, new QTableWidgetItem(""));
                        if(k<9)   Mytableconfig->setFlags(Mytableconfig->flags() ^ Qt::ItemIsEditable);
        
                        //config table
                    }
                    //calib table
                    //for(int m=0;m<342;m++){ for(int y=500;y<549;y++){
                    QTableWidgetItem     *Mysetpoint = new QTableWidgetItem(listValue[k]);
        
                    ui->tablewidget4->setItem(cter-1,k,Mysetpoint);
                    ui->tablewidget4->hideColumn(0);
                    for(int m=0;m<341;m++){
                        ui->tablewidget4->hideRow(m);}
                    for(int p=500;p<549;p++){
                        ui->tablewidget4->hideRow(p);}
                    ui->tablewidget4->setItem(cter-1, 8, new QTableWidgetItem(""));
                    ui->tablewidget4->setItem(cter-1, 9, new QTableWidgetItem(""));
                    if(k<9)   Mysetpoint->setFlags(Mysetpoint->flags() ^ Qt::ItemIsEditable);
                    //calib table
                    for(int n=0;n<525;n++){
                        QTableWidgetItem     *Mysetpoint = new QTableWidgetItem(listValue[k]);
        
                        ui->tablewidget5->setItem(cter-1,k,Mysetpoint);
                        ui->tablewidget5->hideColumn(0);
                        ui->tablewidget5->hideRow(n);
                        ui->tablewidget5->setItem(cter-1, 8, new QTableWidgetItem(""));
                        ui->tablewidget5->setItem(cter-1, 9, new QTableWidgetItem(""));
                        if(k<9)   Mysetpoint->setFlags(Mysetpoint->flags() ^ Qt::ItemIsEditable);
                    }
                    //calib table
        
        
                }
        

        So who can help me to optimize this code !
        I have one CSV file . I will extract 4 table from it

        thank you

        M CP71C 2 Replies Last reply
        0
        • D dziko147

          @SGaist I think the problem is caused by doing processing on the data .
          this is my code :

           while(!inFile.atEnd()){
                  QString readedLine =inFile.readLine();
                  QStringList listValue = readedLine.split(";");
                  cter +=1;
          
                  ui->tablewidget2->setRowCount(cter);
          
                  ui->tablewidget3->setRowCount(cter);
          
                  ui->tablewidget->setRowCount(cter);
                  ui->tablewidget4->setRowCount(cter);
                  ui->tablewidget5->setRowCount(cter);
          
          
          
                  for(int k=0;k<listValue.size();k++){
                      QTableWidgetItem     *Mytable = new QTableWidgetItem(listValue[k]);
                      ui->tablewidget->setItem(cter-1,k,Mytable);
                      ui->tablewidget->hideColumn(0);
                      ui->tablewidget->setItem(cter-1, 8, new QTableWidgetItem(""));
                      ui->tablewidget->setItem(cter-1, 9, new QTableWidgetItem(""));
                      if(k<9)   Mytable->setFlags(Mytable->flags() ^ Qt::ItemIsEditable);// modif la valeur du k pour rendre le champ editable
          
          
                     //setpoint table
                      for(int t=10;t<551;t++){
                          QTableWidgetItem     *Mysetpoint = new QTableWidgetItem(listValue[k]);
          
                          ui->tablewidget2->setItem(cter-1,k,Mysetpoint);
                          ui->tablewidget2->hideColumn(0);
                          ui->tablewidget2->hideRow(t);
                          ui->tablewidget2->setItem(cter-1, 8, new QTableWidgetItem(""));
                          ui->tablewidget2->setItem(cter-1, 9, new QTableWidgetItem(""));
                          if(k<9)   Mysetpoint->setFlags(Mysetpoint->flags() ^ Qt::ItemIsEditable);
          
          
                      }
                      //setpoint table
          
                      for(int a=341;a<549;a++){
                          QTableWidgetItem     *Mytableconfig = new QTableWidgetItem(listValue[k]);
          
                          ui->tablewidget3->setItem(cter-1,k,Mytableconfig);
                          ui->tablewidget3->hideColumn(0);
                          ui->tablewidget3->hideRow(a);
          
                          for(int x=0;x<10;x++){
                              ui->tablewidget3->hideRow(x);
          
                          }
          
          
                          ui->tablewidget3->setItem(cter-1, 8, new QTableWidgetItem(""));
                          ui->tablewidget3->setItem(cter-1, 9, new QTableWidgetItem(""));
                          if(k<9)   Mytableconfig->setFlags(Mytableconfig->flags() ^ Qt::ItemIsEditable);
          
                          //config table
                      }
                      //calib table
                      //for(int m=0;m<342;m++){ for(int y=500;y<549;y++){
                      QTableWidgetItem     *Mysetpoint = new QTableWidgetItem(listValue[k]);
          
                      ui->tablewidget4->setItem(cter-1,k,Mysetpoint);
                      ui->tablewidget4->hideColumn(0);
                      for(int m=0;m<341;m++){
                          ui->tablewidget4->hideRow(m);}
                      for(int p=500;p<549;p++){
                          ui->tablewidget4->hideRow(p);}
                      ui->tablewidget4->setItem(cter-1, 8, new QTableWidgetItem(""));
                      ui->tablewidget4->setItem(cter-1, 9, new QTableWidgetItem(""));
                      if(k<9)   Mysetpoint->setFlags(Mysetpoint->flags() ^ Qt::ItemIsEditable);
                      //calib table
                      for(int n=0;n<525;n++){
                          QTableWidgetItem     *Mysetpoint = new QTableWidgetItem(listValue[k]);
          
                          ui->tablewidget5->setItem(cter-1,k,Mysetpoint);
                          ui->tablewidget5->hideColumn(0);
                          ui->tablewidget5->hideRow(n);
                          ui->tablewidget5->setItem(cter-1, 8, new QTableWidgetItem(""));
                          ui->tablewidget5->setItem(cter-1, 9, new QTableWidgetItem(""));
                          if(k<9)   Mysetpoint->setFlags(Mysetpoint->flags() ^ Qt::ItemIsEditable);
                      }
                      //calib table
          
          
                  }
          

          So who can help me to optimize this code !
          I have one CSV file . I will extract 4 table from it

          thank you

          M Offline
          M Offline
          mvuori
          wrote on last edited by
          #4

          I suspect that updating the UI might be slow. Your widget should, AFAIK, have setUpdatesEnabled(bool) method you can use to turn updating off during the process.

          1 Reply Last reply
          0
          • D Offline
            D Offline
            dziko147
            wrote on last edited by
            #5

            @mvuori No I tried your solution but stiil take long time :/

            please ho can suggest a better way to do this :/

            1 Reply Last reply
            0
            • D dziko147

              @SGaist I think the problem is caused by doing processing on the data .
              this is my code :

               while(!inFile.atEnd()){
                      QString readedLine =inFile.readLine();
                      QStringList listValue = readedLine.split(";");
                      cter +=1;
              
                      ui->tablewidget2->setRowCount(cter);
              
                      ui->tablewidget3->setRowCount(cter);
              
                      ui->tablewidget->setRowCount(cter);
                      ui->tablewidget4->setRowCount(cter);
                      ui->tablewidget5->setRowCount(cter);
              
              
              
                      for(int k=0;k<listValue.size();k++){
                          QTableWidgetItem     *Mytable = new QTableWidgetItem(listValue[k]);
                          ui->tablewidget->setItem(cter-1,k,Mytable);
                          ui->tablewidget->hideColumn(0);
                          ui->tablewidget->setItem(cter-1, 8, new QTableWidgetItem(""));
                          ui->tablewidget->setItem(cter-1, 9, new QTableWidgetItem(""));
                          if(k<9)   Mytable->setFlags(Mytable->flags() ^ Qt::ItemIsEditable);// modif la valeur du k pour rendre le champ editable
              
              
                         //setpoint table
                          for(int t=10;t<551;t++){
                              QTableWidgetItem     *Mysetpoint = new QTableWidgetItem(listValue[k]);
              
                              ui->tablewidget2->setItem(cter-1,k,Mysetpoint);
                              ui->tablewidget2->hideColumn(0);
                              ui->tablewidget2->hideRow(t);
                              ui->tablewidget2->setItem(cter-1, 8, new QTableWidgetItem(""));
                              ui->tablewidget2->setItem(cter-1, 9, new QTableWidgetItem(""));
                              if(k<9)   Mysetpoint->setFlags(Mysetpoint->flags() ^ Qt::ItemIsEditable);
              
              
                          }
                          //setpoint table
              
                          for(int a=341;a<549;a++){
                              QTableWidgetItem     *Mytableconfig = new QTableWidgetItem(listValue[k]);
              
                              ui->tablewidget3->setItem(cter-1,k,Mytableconfig);
                              ui->tablewidget3->hideColumn(0);
                              ui->tablewidget3->hideRow(a);
              
                              for(int x=0;x<10;x++){
                                  ui->tablewidget3->hideRow(x);
              
                              }
              
              
                              ui->tablewidget3->setItem(cter-1, 8, new QTableWidgetItem(""));
                              ui->tablewidget3->setItem(cter-1, 9, new QTableWidgetItem(""));
                              if(k<9)   Mytableconfig->setFlags(Mytableconfig->flags() ^ Qt::ItemIsEditable);
              
                              //config table
                          }
                          //calib table
                          //for(int m=0;m<342;m++){ for(int y=500;y<549;y++){
                          QTableWidgetItem     *Mysetpoint = new QTableWidgetItem(listValue[k]);
              
                          ui->tablewidget4->setItem(cter-1,k,Mysetpoint);
                          ui->tablewidget4->hideColumn(0);
                          for(int m=0;m<341;m++){
                              ui->tablewidget4->hideRow(m);}
                          for(int p=500;p<549;p++){
                              ui->tablewidget4->hideRow(p);}
                          ui->tablewidget4->setItem(cter-1, 8, new QTableWidgetItem(""));
                          ui->tablewidget4->setItem(cter-1, 9, new QTableWidgetItem(""));
                          if(k<9)   Mysetpoint->setFlags(Mysetpoint->flags() ^ Qt::ItemIsEditable);
                          //calib table
                          for(int n=0;n<525;n++){
                              QTableWidgetItem     *Mysetpoint = new QTableWidgetItem(listValue[k]);
              
                              ui->tablewidget5->setItem(cter-1,k,Mysetpoint);
                              ui->tablewidget5->hideColumn(0);
                              ui->tablewidget5->hideRow(n);
                              ui->tablewidget5->setItem(cter-1, 8, new QTableWidgetItem(""));
                              ui->tablewidget5->setItem(cter-1, 9, new QTableWidgetItem(""));
                              if(k<9)   Mysetpoint->setFlags(Mysetpoint->flags() ^ Qt::ItemIsEditable);
                          }
                          //calib table
              
              
                      }
              

              So who can help me to optimize this code !
              I have one CSV file . I will extract 4 table from it

              thank you

              CP71C Offline
              CP71C Offline
              CP71
              wrote on last edited by CP71
              #6

              @dziko147
              If I read well I see for every cells of every line of yor csv I see:

              • 3 QTableWidgetItem
              • 1623 QTableWidgetItem ( setpoint table )
              • 594 QTableWidgetItem ( second setpoint table )
              • sorry but I lose the computation of objects but you must add other several thousand of QTableWidgetItem

              so only for one line on your csv there are several thousand of QTableWidgetItem, multiply everything for every line of CSV
              It is a huge number of items.

              First step I'd try set ui->tablewidget2->setUpdatesEnabled( false )
              for every QTableWidget and then the fill operation
              I'd try set ui->tablewidget2->setUpdatesEnabled( true ), alway for every QTableWidget.

              setUpdatesEnabled(false) disables update of QTableWidget when you add a QTableWidgetItem, for every add operation

              1 Reply Last reply
              0
              • D Offline
                D Offline
                dziko147
                wrote on last edited by
                #7

                @CP71 I resume what i want to do .

                So i load a csv file(compouned of 600 row and 7 column).
                this csv is an Input for my Application. it contains variable and their types .

                So I would like to get every type in a single tablewidget .

                CP71C 1 Reply Last reply
                0
                • D dziko147

                  @CP71 I resume what i want to do .

                  So i load a csv file(compouned of 600 row and 7 column).
                  this csv is an Input for my Application. it contains variable and their types .

                  So I would like to get every type in a single tablewidget .

                  CP71C Offline
                  CP71C Offline
                  CP71
                  wrote on last edited by
                  #8

                  @dziko147
                  Ok, try to call set Updates Enabled( false ) for every QTableWidget before your fill loop. I think could improve the performance.
                  It is the first idea when I see your code

                  1 Reply Last reply
                  0
                  • D Offline
                    D Offline
                    dziko147
                    wrote on last edited by dziko147
                    #9

                    @CP71 like this ?

                     while(!inFile.atEnd()){
                            QString readedLine =inFile.readLine();
                            QStringList listValue = readedLine.split(";");
                            cter +=1;
                    
                            ui->tablewidget2->setRowCount(cter);
                    
                            ui->tablewidget3->setRowCount(cter);
                    
                            ui->tablewidget->setRowCount(cter);
                            ui->tablewidget4->setRowCount(cter);
                            ui->tablewidget5->setRowCount(cter);
                    
                    ui->tablewidget->setUpdatesEnabled(false);
                    ui->tablewidget2->setUpdatesEnabled(false);
                    ui->tablewidget3->setUpdatesEnabled(false);
                    ui->tablewidget4->setUpdatesEnabled(false);
                    ui->tablewidget5->setUpdatesEnabled(false);
                    
                    
                            for(int k=0;k<listValue.size();k++){
                                //csv global
                                QTableWidgetItem     *Mytable = new QTableWidgetItem(listValue[k]);
                                ui->tablewidget->setItem(cter-1,k,Mytable);
                                ui->tablewidget->hideColumn(0);
                                ui->tablewidget->setItem(cter-1, 8, new QTableWidgetItem(""));
                                ui->tablewidget->setItem(cter-1, 9, new QTableWidgetItem(""));
                                if(k<9)   Mytable->setFlags(Mytable->flags() ^ Qt::ItemIsEditable);// modif la valeur du k pour rendre le champ editable
                                ui->tablewidget2->setUpdatesEnabled(true);
                                  //csv global
                    
                                //setpoint table
                                for(int t=10;t<551;t++){
                                    QTableWidgetItem     *Mysetpoint = new QTableWidgetItem(listValue[k]);
                    
                                    ui->tablewidget2->setItem(cter-1,k,Mysetpoint);
                                    ui->tablewidget2->hideColumn(0);
                                    ui->tablewidget2->hideRow(t);
                                    ui->tablewidget2->setItem(cter-1, 8, new QTableWidgetItem(""));
                                    ui->tablewidget2->setItem(cter-1, 9, new QTableWidgetItem(""));
                                    if(k<9)   Mysetpoint->setFlags(Mysetpoint->flags() ^ Qt::ItemIsEditable);
                                    ui->tablewidget2->setUpdatesEnabled(true);
                    
                    
                                }
                                //setpoint table
                    
                                //config table
                                for(int a=341;a<549;a++){
                                    QTableWidgetItem     *Mytableconfig = new QTableWidgetItem(listValue[k]);
                    
                                    ui->tablewidget3->setItem(cter-1,k,Mytableconfig);
                                    ui->tablewidget3->hideColumn(0);
                                    ui->tablewidget3->hideRow(a);
                    
                                    for(int x=0;x<10;x++){
                                        ui->tablewidget3->hideRow(x);
                    
                                    }
                    
                    
                                    ui->tablewidget3->setItem(cter-1, 8, new QTableWidgetItem(""));
                                    ui->tablewidget3->setItem(cter-1, 9, new QTableWidgetItem(""));
                                    if(k<9)   Mytableconfig->setFlags(Mytableconfig->flags() ^ Qt::ItemIsEditable);
                                    ui->tablewidget3->setUpdatesEnabled(true);
                    
                                    //config table
                                }
                                
                                //calib table
                                
                                QTableWidgetItem     *Mytablecalib = new QTableWidgetItem(listValue[k]);
                    
                                ui->tablewidget4->setItem(cter-1,k,Mytablecalib);
                                ui->tablewidget4->hideColumn(0);
                                for(int m=0;m<341;m++){
                                    ui->tablewidget4->hideRow(m);
                                }
                                for(int p=500;p<549;p++){
                                    ui->tablewidget4->hideRow(p);
                                }
                                ui->tablewidget4->setItem(cter-1, 8, new QTableWidgetItem(""));
                                ui->tablewidget4->setItem(cter-1, 9, new QTableWidgetItem(""));
                                if(k<9)   Mytablecalib->setFlags(Mytablecalib->flags() ^ Qt::ItemIsEditable);
                                ui->tablewidget4->setUpdatesEnabled(true);
                                //calib table
                                
                                //param table
                                for(int n=0;n<525;n++){
                                    QTableWidgetItem     *Myparamtable = new QTableWidgetItem(listValue[k]);
                    
                                    ui->tablewidget5->setItem(cter-1,k,Myparamtable);
                                    ui->tablewidget5->hideColumn(0);
                                    ui->tablewidget5->hideRow(n);
                                    ui->tablewidget5->setItem(cter-1, 8, new QTableWidgetItem(""));
                                    ui->tablewidget5->setItem(cter-1, 9, new QTableWidgetItem(""));
                                    if(k<9)   Myparamtable->setFlags(Myparamtable->flags() ^ Qt::ItemIsEditable);
                                    ui->tablewidget5->setUpdatesEnabled(true);
                    
                                }
                                //param table
                    
                    CP71C 1 Reply Last reply
                    0
                    • D dziko147

                      @CP71 like this ?

                       while(!inFile.atEnd()){
                              QString readedLine =inFile.readLine();
                              QStringList listValue = readedLine.split(";");
                              cter +=1;
                      
                              ui->tablewidget2->setRowCount(cter);
                      
                              ui->tablewidget3->setRowCount(cter);
                      
                              ui->tablewidget->setRowCount(cter);
                              ui->tablewidget4->setRowCount(cter);
                              ui->tablewidget5->setRowCount(cter);
                      
                      ui->tablewidget->setUpdatesEnabled(false);
                      ui->tablewidget2->setUpdatesEnabled(false);
                      ui->tablewidget3->setUpdatesEnabled(false);
                      ui->tablewidget4->setUpdatesEnabled(false);
                      ui->tablewidget5->setUpdatesEnabled(false);
                      
                      
                              for(int k=0;k<listValue.size();k++){
                                  //csv global
                                  QTableWidgetItem     *Mytable = new QTableWidgetItem(listValue[k]);
                                  ui->tablewidget->setItem(cter-1,k,Mytable);
                                  ui->tablewidget->hideColumn(0);
                                  ui->tablewidget->setItem(cter-1, 8, new QTableWidgetItem(""));
                                  ui->tablewidget->setItem(cter-1, 9, new QTableWidgetItem(""));
                                  if(k<9)   Mytable->setFlags(Mytable->flags() ^ Qt::ItemIsEditable);// modif la valeur du k pour rendre le champ editable
                                  ui->tablewidget2->setUpdatesEnabled(true);
                                    //csv global
                      
                                  //setpoint table
                                  for(int t=10;t<551;t++){
                                      QTableWidgetItem     *Mysetpoint = new QTableWidgetItem(listValue[k]);
                      
                                      ui->tablewidget2->setItem(cter-1,k,Mysetpoint);
                                      ui->tablewidget2->hideColumn(0);
                                      ui->tablewidget2->hideRow(t);
                                      ui->tablewidget2->setItem(cter-1, 8, new QTableWidgetItem(""));
                                      ui->tablewidget2->setItem(cter-1, 9, new QTableWidgetItem(""));
                                      if(k<9)   Mysetpoint->setFlags(Mysetpoint->flags() ^ Qt::ItemIsEditable);
                                      ui->tablewidget2->setUpdatesEnabled(true);
                      
                      
                                  }
                                  //setpoint table
                      
                                  //config table
                                  for(int a=341;a<549;a++){
                                      QTableWidgetItem     *Mytableconfig = new QTableWidgetItem(listValue[k]);
                      
                                      ui->tablewidget3->setItem(cter-1,k,Mytableconfig);
                                      ui->tablewidget3->hideColumn(0);
                                      ui->tablewidget3->hideRow(a);
                      
                                      for(int x=0;x<10;x++){
                                          ui->tablewidget3->hideRow(x);
                      
                                      }
                      
                      
                                      ui->tablewidget3->setItem(cter-1, 8, new QTableWidgetItem(""));
                                      ui->tablewidget3->setItem(cter-1, 9, new QTableWidgetItem(""));
                                      if(k<9)   Mytableconfig->setFlags(Mytableconfig->flags() ^ Qt::ItemIsEditable);
                                      ui->tablewidget3->setUpdatesEnabled(true);
                      
                                      //config table
                                  }
                                  
                                  //calib table
                                  
                                  QTableWidgetItem     *Mytablecalib = new QTableWidgetItem(listValue[k]);
                      
                                  ui->tablewidget4->setItem(cter-1,k,Mytablecalib);
                                  ui->tablewidget4->hideColumn(0);
                                  for(int m=0;m<341;m++){
                                      ui->tablewidget4->hideRow(m);
                                  }
                                  for(int p=500;p<549;p++){
                                      ui->tablewidget4->hideRow(p);
                                  }
                                  ui->tablewidget4->setItem(cter-1, 8, new QTableWidgetItem(""));
                                  ui->tablewidget4->setItem(cter-1, 9, new QTableWidgetItem(""));
                                  if(k<9)   Mytablecalib->setFlags(Mytablecalib->flags() ^ Qt::ItemIsEditable);
                                  ui->tablewidget4->setUpdatesEnabled(true);
                                  //calib table
                                  
                                  //param table
                                  for(int n=0;n<525;n++){
                                      QTableWidgetItem     *Myparamtable = new QTableWidgetItem(listValue[k]);
                      
                                      ui->tablewidget5->setItem(cter-1,k,Myparamtable);
                                      ui->tablewidget5->hideColumn(0);
                                      ui->tablewidget5->hideRow(n);
                                      ui->tablewidget5->setItem(cter-1, 8, new QTableWidgetItem(""));
                                      ui->tablewidget5->setItem(cter-1, 9, new QTableWidgetItem(""));
                                      if(k<9)   Myparamtable->setFlags(Myparamtable->flags() ^ Qt::ItemIsEditable);
                                      ui->tablewidget5->setUpdatesEnabled(true);
                      
                                  }
                                  //param table
                      
                      CP71C Offline
                      CP71C Offline
                      CP71
                      wrote on last edited by
                      #10

                      @dziko147
                      before while

                      ui->tablewidget->setUpdatesEnabled(false);
                      ui->tablewidget2->setUpdatesEnabled(false);
                      ui->tablewidget3->setUpdatesEnabled(false);
                      ui->tablewidget4->setUpdatesEnabled(false);
                      ui->tablewidget5->setUpdatesEnabled(false);

                      while (...)
                      {
                      ...
                      }

                      after while
                      ui->tablewidget->setUpdatesEnabled(true);
                      ui->tablewidget2->setUpdatesEnabled(true);
                      ui->tablewidget3->setUpdatesEnabled(true);
                      ui->tablewidget4->setUpdatesEnabled(true);
                      ui->tablewidget5->setUpdatesEnabled(true);

                      1 Reply Last reply
                      0
                      • D Offline
                        D Offline
                        dziko147
                        wrote on last edited by
                        #11

                        @CP71 unfortunately it still takes long time :/

                        CP71C 1 Reply Last reply
                        0
                        • D dziko147

                          @CP71 unfortunately it still takes long time :/

                          CP71C Offline
                          CP71C Offline
                          CP71
                          wrote on last edited by
                          #12

                          @dziko147
                          no other idea at the moment!
                          Sorry but I must go.
                          See you on monday

                          1 Reply Last reply
                          0
                          • D Offline
                            D Offline
                            dziko147
                            wrote on last edited by
                            #13

                            @CP71 Ok thank you bye :)

                            1 Reply Last reply
                            0
                            • SGaistS Offline
                              SGaistS Offline
                              SGaist
                              Lifetime Qt Champion
                              wrote on last edited by
                              #14

                              First thing: why do you have one CSV file that seems to contain data for radically different elements ?
                              Wouldn't it make more sense to have one file for each ?
                              You code will break as soon as you add a line somewhere in the middle of the file.

                              That said as @CP71 wrote, you are creating a ridiculous amount of items, that you hide as soon as they are created doing many operations for nothing.

                              The file being pretty small, you should load it at once and then process the lines that are specific to each table widget by group. There's no need to do anything for your table widget number one when the lines do not concern it.

                              Interested in AI ? www.idiap.ch
                              Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                              1 Reply Last reply
                              1
                              • D Offline
                                D Offline
                                dziko147
                                wrote on last edited by
                                #15

                                @SGaist ok your solution is clear . and thank you for your reply .
                                but can you suggest any example ?

                                1 Reply Last reply
                                0
                                • D Offline
                                  D Offline
                                  dziko147
                                  wrote on last edited by
                                  #16

                                  Finally , i solve this problem :D .

                                  this is source code for those you need :D

                                  //here i fill data to tablewidget
                                  while(!inFile.atEnd()){
                                          QString readedLine =inFile.readLine();
                                          QStringList listValue = readedLine.split(";");
                                          cter +=1;
                                    ui->tablewidget->setRowCount(cter);
                                   for(int k=0;k<listValue.size();k++){
                                              //csv global
                                              QTableWidgetItem     *Mytable = new QTableWidgetItem(listValue[k]);
                                              ui->tablewidget->setItem(cter-1,k,Mytable);
                                              ui->tablewidget->hideColumn(0);
                                              ui->tablewidget->setItem(cter-1, 8, new QTableWidgetItem(""));
                                              ui->tablewidget->setItem(cter-1, 9, new QTableWidgetItem(""));
                                              if(k<9)   Mytable->setFlags(Mytable->flags() ^ Qt::ItemIsEditable);// modif la valeur du k pour rendre le champ editable
                                                //csv global
                                    }
                                  }
                                  

                                  then when button clicked I extract some data from tablewidget :

                                  void UploadCSV::on_Corebtn_clicked()
                                  {      ui->tablewidget->setFixedSize(950,450);
                                  
                                        // ui->tablewidget->setVisible(true);
                                         for (int i=0;i<ui->tablewidget->rowCount() ;i++ ) {
                                             QTableWidgetItem *cell7 = ui->tablewidget->item(i,7);
                                             QVariant myData7 = cell7->data(Qt::DisplayRole);
                                             if(myData7!="Core_setpoint"){
                                                 ui->tablewidget->hideRow(i);
                                             }
                                         }
                                  
                                  }
                                  

                                  then when button is released should Show the row hided :D

                                  void UploadCSV::on_Corebtn_released()
                                  {
                                      ui->tablewidget->setFixedSize(950,450);
                                      for (int i=0;i<ui->tablewidget->rowCount() ;i++ ) {
                                    ui->tablewidget->showRow(i);
                                      }
                                  }
                                  

                                  thank you all for your help :)

                                  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