2016-05-28 14 views
2

Ich möchte alle meine Daten in mehreren QList Variablen in eine zentrale QTableWidget einfügen.QList zu QTableWidget

Ich habe sechs QList<QString> Variablen mit eigentlich jeder Länge von ihnen ist 7. Mit Hilfe dieser Routine, würde Ich mag jedes Element meiner QList in eine QTableWidgetItem zu schreiben. Was ist der einfachste und effizienteste Weg, dies zu lösen?

for (int ridx = 0; ridx < iRowCount; ridx++) 
{ 
     tmptable = resultTable[ridx]; 
     for (int cidx = 0; cidx < iColumnCount; cidx++) 
     { 
      QTableWidgetItem* item = new QTableWidgetItem(); 

      item->setText(tmptable[ridx]); 
      ui->tableWidget->setItem(ridx,cidx,item);  
     }  
} 
+0

Was ist also falsch an diesem Code? – hyde

+0

Vielleicht möchten Sie ein benutzerdefiniertes Modell und verwenden Sie 'QTableView'? Obwohl es insgesamt komplexer sein wird, ist es in Ordnung, wenn Sie nicht auf ein Leistungsproblem oder etwas stoßen. – hyde

+0

Ich glaube nicht, dass ich Leistungsprobleme habe. Es ist nur ein Standard-QTableWidget zeigt alle Einträge einer Datenbank. Jede Spalte der Datenbank wird in einer QList Variable gespeichert. Und ich möchte alle Spalten in einem zentralen QTableWidget zeigen. Dieser Code funktioniert nicht korrekt, weil ich nach dem Start der Anwendung gezwungen wurde, ihn zu schließen (QList außerhalb des gültigen Bereichs). Gibt es eine einfache Möglichkeit, alle QList in ein QTableWidget zusammenzuführen? – jollepe

Antwort

0

Ich habe es läuft. Dies ist mein endgültiger Code zum Hinzufügen aller Elemente jeder QList in das zentrale QTableWidget. Es ist nicht diese elegante Lösung. Könnte es eine andere (bessere) Lösung geben?

for (int cidx = 0; cidx < iColumnCount; cidx++) 
{ 
    if (cidx==0) 
    { 
     // Column LoginName 

     for (int ridx = 0 ; ridx < iRowCount ; ridx++) 
     { 
      QTableWidgetItem* item = new QTableWidgetItem(); 

      item->setText(ListLoginName[ridx]); 
      ui->tableWidget->setItem(ridx,cidx,item); 

     } 

    } 
    if (cidx==1) 
    { 

     //Column Lastname 
     for (int ridx = 0 ; ridx < iRowCount ; ridx++) 
     { 
      QTableWidgetItem* item = new QTableWidgetItem(); 

      item->setText(ListLastname[ridx]); 
      ui->tableWidget->setItem(ridx,cidx,item); 

     } 

    } 
    if (cidx==2) 
    { 
     // Column Firstname 
     for (int ridx = 0 ; ridx < iRowCount ; ridx++) 
     { 
      QTableWidgetItem* item = new QTableWidgetItem(); 

      item->setText(ListFirstname[ridx]); 
      ui->tableWidget->setItem(ridx,cidx,item); 

     } 

    } 
    if (cidx==3) 
    { 
     // COlumn Position 
     for (int ridx = 0 ; ridx < iRowCount ; ridx++) 
     { 
      QTableWidgetItem* item = new QTableWidgetItem(); 

      item->setText(ListPosition[ridx]); 
      ui->tableWidget->setItem(ridx,cidx,item); 

     } 

    } 
    if (cidx==4) 
    { 
     // Column Email 
     for (int ridx = 0 ; ridx < iRowCount ; ridx++) 
     { 
      QTableWidgetItem* item = new QTableWidgetItem(); 

      item->setText(ListEmail[ridx]); 
      ui->tableWidget->setItem(ridx,cidx,item); 

     } 

    } 
    if (cidx==5) 
    { 
     // Column Telephone 
     for (int ridx = 0 ; ridx < iRowCount ; ridx++) 
     { 
      QTableWidgetItem* item = new QTableWidgetItem(); 

      item->setText(ListTelephone[ridx]); 
      ui->tableWidget->setItem(ridx,cidx,item); 

     } 

    } 
}