Qt:从视图中删除模型

4
我们通常在Qt中这样设置视图模型: view->setModel(model); 但是有没有办法从视图中移除模型?我的意思是让视图保持空白,就像刚创建时没有设置任何模型一样。
如果你问我为什么想这么做,我的情况和这个人的帖子非常相似。当第一个视图没有选择或为空/无效/任何东西时,我想让第二个视图显示真正的空白:没有标题、列、垃圾数据。在那种情况下,从视图中删除一个模型似乎是相当合理的。
我尝试过一个肮脏的技巧: *view = QTableView(); 但是Qt会处理这种恶意行为并将operator=私有化。

view->setModel(nullptr) 不起作用吗? - G.M.
1个回答

7

QAbstractItemView::setModel() 的源代码中:

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接