gpt4 book ai didi

c++ - 更新一个 QTableView

转载 作者:太空狗 更新时间:2023-10-29 23:04:04 29 4
gpt4 key购买 nike

QTableView *tableView = new QTableView();
QStandardItemModel *model = new QStandardItemModel(15,4, this);
tableView->setModel(model);

model->setHorizontalHeaderItem(0, new QStandardItem("#") );
model->setHorizontalHeaderItem(1, new QStandardItem("col1") );
model->setHorizontalHeaderItem(2, new QStandardItem("col2") );

// update tableView

model->removeRows(0,model->rowCount());

QList<QStandardItem*> row1;
row1 << new QStandardItem("element 01") << new QStandardItem("element 02") << new QStandardItem("element 03");
model->appendRow( row1 );

QList<QStandardItem*> row2;
row2 << new QStandardItem("element 04") << new QStandardItem("element 05") << new QStandardItem("element 06");
model->appendRow( row2 );

tableView会经常更新(所有内容都会被删除和替换)。

什么是更新此 QTableView 最快的方法(更少的代码行),可能使用某种数据结构,以及直接处理此结构的 QStandardItemModel 方法?

类似于:

model->setNewData( theNewData );

最佳答案

无需删除行和添加新行。您可以只更新当前项目的值,例如:

model->item(0, 0)->setData("element 01",Qt::DisplayRole);
model->item(0, 1)->setData("element 02",Qt::DisplayRole);
model->item(0, 2)->setData("element 03",Qt::DisplayRole);

model->item(1, 0)->setData("element 04",Qt::DisplayRole);
model->item(1, 1)->setData("element 05",Qt::DisplayRole);
model->item(1, 2)->setData("element 06",Qt::DisplayRole);

关于c++ - 更新一个 QTableView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23817411/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com