我在更新 QTableWidgetItems 时遇到问题。我不明白我做错了什么:(
代码和解释。
一步一步的问题。
- 在第一次插入 = OK,所有第一个单元格都被填充。
- 更新第一个插入的项目 = OK,所有第一个单元格都被更新。
- 在第二次插入 = OK 时,所有第二个单元格都已填充。
- 更新第二个插入的项目 = OK,所有第二个单元格都被更新。
- 更新第一个插入的项目 = FAIL,所有第一个单元格都被更新,但 NEXT 单元格的第一个表是空的。为什么?
代码:
void MainWindow::fillTable(QList<QByteArray> Info)
{
int Row = ui->clientsList->rowCount() - 1; //Starts from 0.
//Check if client row already exists.
for(int i = Row; i >= 0; i--)
{
if(ui->clientsList->item(i, 0)->text().contains(QString(Info[1])))
{
//Update row.
for(int u = 0; u < Info.count() - 1; u++)
{
ui->clientsList->setItem(i, u, new QTableWidgetItem(QString(Info[u + 1])));
}
return; //avoid new row insertion.
}
}
//Insert new row.
Row = ui->clientsList->rowCount() + 1;
ui->clientsList->setRowCount(Row);
for(int i = 0; i < Info.count() - 1; i++)
{
//Fill rows.
ui->clientsList->setItem(Row - 1, i, new QTableWidgetItem(QString(Info[i + 1])));
}
}