Qt - 清除QTableView的内容

时间:2014-04-07 15:49:26

标签: c++ qt model clear qtableview

我在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'

还有另外一种方法可以忽略我吗?谢谢!

2 个答案:

答案 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();