我们通常在Qt中设置view的模型,如下所示:
view->setModel(model);
但有没有办法从视图中移除模型?我的意思是将视图留空,就像它刚刚创建的那样,并且还没有设置任何模型。
如果你问我一个理由我的愿望,我的情况与这个人的post非常相似。当第一个视图没有选择或者它是空的/无效/无论什么时,我想让第二个视图显示什么都没有:没有标题,列,垃圾数据。在这种情况下,从视图中删除模型似乎是非常合理的。
我尝试了一个肮脏的黑客:
*view = QTableView();
但是Qt关注这些邪恶的事情并使operator=
变得私密。
答案 0 :(得分:4)
来自QAbstractItemView::setModel()
的来源:
d->model = (model ? model : QAbstractItemModelPrivate::staticEmptyModel());
看起来如果传递空指针,它将在内部使用一些虚拟模型回退。因此支持空指针,这是一种有效的方式去取消"取消设置"目前的模式。