2017-11-06 4 views
0

Unten ist Code, der in Schleife ist. Die Spalte wird aktualisiert, aber die Reihe nimmt nur die 0. Reihe. Wenn Zeile = 4 ist, werden auch Daten in der 0. Zeile der Tabelle angezeigt.Qtablewidget- Zeile wird nicht aktualisiert

void method_1::set_data_ontable(int row, double l1, double l2, int type_of_object) 
{ 
    setdes1->setText(QString::number((row), 'f', 0)); 
    ui->tableWidget->setItem(row, 0, setdes1); 
    setdes1->setText(QString::number((l1), 'f', 6)); 
    ui->tableWidget->setItem(row, 1, setdes1); 
    setdes1->setText(QString::number((l2), 'f', 6)); 
    ui->tableWidget->setItem(row, 2, setdes1); 
    setdes1->setText(QString::number((type_of_object), 'f', 0)); 
    ui->tableWidget->setItem(row, 3, setdes1); 
} 

Bitte helfen Sie mir, das Problem zu lösen.

+0

Haben Sie die Zeilenanzahl "ui-> tableWidget" getestet? Versuchen Sie 'ui-> tableWidget-> setRowCount (iRowsNumber);' – Simon

Antwort

0

Sie benötigen Tisch row count

Legt die Anzahl der Zeilen in dieser Tabelle auf Zeilen Modell einzustellen. Wenn dies kleiner als rowCount() ist, werden die Daten in den unerwünschten Zeilen verworfen.

0

Es funktioniert jetzt. Nach Änderung der unter

ui->tableWidget->setItem(row, 0, new 
QTableWidgetItem(QString::number((row)))); 

ui->tableWidget->setItem(row, 1, new 
QTableWidgetItem(QString::number((longitude), 'f',6))); 

ui->tableWidget->setItem(row, 2, new 
QTableWidgetItem(QString::number((latitude), 'f', 6))); 

ui->tableWidget->setItem(row, 3, new 
QTableWidgetItem(QString::number((row)))); 

neue QTableWidgetItem (QString :: Nummer ((row))). Dieses neue gibt keinen Speicherverlust ?.

+0

Nein, die Tabelle übernimmt den Besitz des Elements – Simon

+0

Danke @Simon. –