Qt:从视图中删除模型

时间:2017-10-08 10:44:03

标签: c++ qt qabstractitemmodel qabstractitemview

我们通常在Qt中设置view的模型,如下所示: view->setModel(model);

但有没有办法从视图中移除模型?我的意思是将视图留空,就像它刚刚创建的那样,并且还没有设置任何模型。

如果你问我一个理由我的愿望,我的情况与这个人的post非常相似。当第一个视图没有选择或者它是空的/无效/无论什么时,我想让第二个视图显示什么都没有:没有标题,列,垃圾数据。在这种情况下,从视图中删除模型似乎是非常合理的。

我尝试了一个肮脏的黑客: *view = QTableView(); 但是Qt关注这些邪恶的事情并使operator=变得私密。

1 个答案:

答案 0 :(得分:4)

来自QAbstractItemView::setModel()的来源:

d->model = (model ? model : QAbstractItemModelPrivate::staticEmptyModel());

看起来如果传递空指针,它将在内部使用一些虚拟模型回退。因此支持空指针,这是一种有效的方式去取消"取消设置"目前的模式。