【问题标题】:Qt - Clearing QTableView's contents [closed]Qt - 清除 QTableView 的内容
【发布时间】: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'

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

【问题讨论】:

    标签: c++ qt model qtableview


    【解决方案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()

      【讨论】:

      • 您发布的链接现在已失效。
      • 更新死链接
      猜你喜欢
      • 1970-01-01
      • 2020-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-01
      • 2015-04-30
      • 2011-03-05
      相关资源
      最近更新 更多