首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更新QTableView

更新QTableView
EN

Stack Overflow用户
提问于 2014-05-23 05:32:01
回答 1查看 3.2K关注 0票数 3
代码语言:javascript
复制
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方法?

类似于:

代码语言:javascript
复制
model->setNewData( theNewData );
EN

回答 1

Stack Overflow用户

发布于 2014-05-23 12:26:50

不需要删除行和添加新行。您可以只更新当前项目的值,如下所示:

代码语言:javascript
复制
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);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23817411

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档