Qt - 清除 QTableView 的内容

Posted

技术标签:

【中文标题】Qt - 清除 QTableView 的内容【英文标题】:Qt - Clearing QTableView's contents [closed] 【发布时间】:2014-04-07 15:49:26 【问题描述】:

我在 Qt 4.7 中工作,并且有一个对话框,其中包含(以及其他不相关的内容)一个 QTableView 和一个 QButton。单击 QButton 时,它必须清除 QTableView 中的所有数据。我不确定如何实现这一点。我在网上看了一段时间,但没有发现任何有用的东西。根据我找到的here,我尝试了这个:

void MyClass::on_myButton_clicked() myTableView->model()->clear();

但是,这给出了以下错误:

error: C2039: 'clear' : is not a member of 'QAbstractItemModel'

还有其他我不小心忽略的方法吗?谢谢!

【问题讨论】:

【参考方案1】:

函数myTableView->model() 返回一个不包含clear() 方法的QAbstractItemModel。您应该调用模型的 clear 方法。如果你有这样的模型:

QStandardItemModel * model= new QStandardItemModel( 2, 4 );

调用 clear 应该删除模型中的所有数据,从而擦除视图,因为它被提供以显示关联模型中的数据:

model->clear();

【讨论】:

【参考方案2】:

我会重置模型(如果您以后不需要模型中的数据)。 子类化您的模型(如果它是自定义模型)并实现类似的插槽;

void clear()
   this->beginResetModel();
   ... // clear the content of your model here
   this->endResetModel();

只需检查QAbstractItemView::reset()。

【讨论】:

您发布的链接现在已失效。 更新死链接

以上是关于Qt - 清除 QTableView 的内容的主要内容,如果未能解决你的问题,请参考以下文章

QT中QTableview表中内容修改?

QT中QTableview表中内容修改?

Qt窗口及控件-QTreeview/QTableView排序问题

如何根据内容调整 QTableView 的高度?

Qt QtableView中如何得到任意一行的数据

QTableView 获取选中行内容并赋值给另一个tableview的问题,求QT高手解救。。。