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 的内容的主要内容,如果未能解决你的问题,请参考以下文章