Qt:从视图中删除模型

Nik*_*kin 3 c++ qt qabstractitemmodel qabstractitemview

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

但是,有什么方法可以从视图中删除模型吗?我的意思是说,将视图保留为空,就像刚刚创建的那样,并且尚未设置任何模型。

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

我尝试了一个肮脏的技巧: *view = QTableView(); 但是Qt照顾了这些邪恶的东西,并将其operator=私有化。

dte*_*ech 5

从来源QAbstractItemView::setModel()

d->model = (model ? model : QAbstractItemModelPrivate::staticEmptyModel());
Run Code Online (Sandbox Code Playgroud)

看起来,如果您传递空指针,它将在内部使用一些虚拟模型回退。因此,支持空指针,这是“重置”当前模型​​的有效方法。