要清空Qt TableView中的数据,可以通过以下方式实现:
- 获取TableView的模型,即QAbstractItemModel对象。
QAbstractItemModel *model = tableView->model();
- 调用QAbstractItemModel的removeRows()方法删除所有行。该方法需要指定要删除的第一行和最后一行的索引值(通常是0和rowCount()-1)以及要从模型中删除的父项索引值(通常为空)。
model->removeRows(0, model->rowCount(), QModelIndex());
- 最后,刷新TableView以显示更改。
tableView->viewport()->update();
完整示例代码如下:
#include <QApplication>
#include <QTableView>
#include <QStandardItemModel>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QTableView *tableView = new QTableView(); //创建TableView控件
QStandardItemModel *model = new QStandardItemModel(); //创建数据模型
model->setColumnCount(3); //设置列数
model->setRowCount(4); //设置行数
model->setItem(0, 0, new QStandardItem("Alice")); //插入数据
model->setItem(0, 1, new QStandardItem("20"));
model->setItem(0, 2, new QStandardItem("Female"));
tableView->setModel(model); //将数据模型设置为TableView的模型
//清空列表数据
QAbstractItemModel *m = tableView->model();
m->removeRows(0, m->rowCount(), QModelIndex());
tableView->viewport()->update(); //刷新TableView以显示更改
tableView->show(); //显示TableView控件
return a.exec();
}
在上面的示例代码中,我们首先创建一个带有数据的QStandardItemModel对象,并将其设置为TableView的模型。然后通过调用QAbstractItemModel的removeRows()方法来删除所有行,并刷新TableView以更新视图。