Qt QTableView、QTreeView、QListView 清空或删除数据的几种方式
一、清空 view 中的数据的几种方式
都是通过model删除
model->clear(); // 从模型中删除所有项(包括标题项),并将行数和列数设置为零。
model->removeRows(0, model->rowCount()); // 删除所有行
model->clearSpans(); // 意思是移除整个行列的间距 不是删除数据
// 清除表格内容,删除所有存在的行,要不然会导致空行的出现
for(int r = ui->tableWidget->rowCount() - 1; r >= 0; r--){
ui->tableWidget->removeRow(r);
}
二、删除某行
// 查找待删除行
// Qt::MatchContains:查找的字符串包含在 item 中
// Qt::MatchRecursive:递归查找
QList<QStandardItem *> itemList = model->findItems(QStringLiteral("xxx"), Qt::MatchContains | Qt::MatchRecursive, 0);
// 获取待删除行的行号
int iRow = itemList.at(0)->row();
// 从待删除行的父节点中删除该行
itemList.at(0)->parent()->removeRow(iRow);