4

我们通常在 Qt 中这样设置视图的模型: view->setModel(model);

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

如果你问我渴望的原因,我有一个与这个人的帖子非常相似的案例。当第一个视图没有选择或者它是空的/无效的/什么时,我想让第二个视图实际上什么都不显示:没有标题、列、垃圾数据。在这种情况下,从视图中移除模型似乎是相当合理的。

我尝试了一个肮脏的黑客: *view = QTableView(); 但是 Qt 关心这些邪恶的事情并将其设为operator=私有。

4

1 回答 1

7

从来源QAbstractItemView::setModel()

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

看起来如果你传递一个空指针,它会在内部使用一些虚拟模型后备。因此支持空指针,这是“取消设置”当前模型​​的有效方法。

于 2017-10-08T11:08:18.300 回答