我在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'
还有另外一种方法可以忽略我吗?谢谢!
答案 0 :(得分:8)
我会重置模型(如果以后不需要模型中的数据)。 对模型进行子类化(如果是自定义模型)并实现类似
的插槽void clear(){
this->beginResetModel();
... // clear the content of your model here
this->endResetModel();
{
只需查看this。
答案 1 :(得分:7)
函数myTableView->model()
返回QAbstractItemModel
,其中不包含clear()
方法。您应该调用模型的清晰方法。如果你有一个类似的模型:
QStandardItemModel * model= new QStandardItemModel( 2, 4 );
调用clear应删除模型中删除视图的所有数据,因为它是为了在相关模型中显示数据而提供的:
model->clear();