Nik*_*kin 3 c++ qt qabstractitemmodel qabstractitemview
我们通常这样在Qt中设置视图的模型:
view->setModel(model);
但是,有什么方法可以从视图中删除模型吗?我的意思是说,将视图保留为空,就像刚刚创建的那样,并且尚未设置任何模型。
如果您问我一个求婚的理由,那么我的情况与这个人的帖子非常相似。当第一个视图没有选择或者它是空的/无效的/什么的时候,我想让第二个视图从字面上什么都没有显示:没有标题,列,垃圾数据。在这种情况下,从视图中删除模型似乎非常合理。
我尝试了一个肮脏的技巧:
*view = QTableView();
但是Qt照顾了这些邪恶的东西,并将其operator=私有化。
从来源QAbstractItemView::setModel():
d->model = (model ? model : QAbstractItemModelPrivate::staticEmptyModel());
Run Code Online (Sandbox Code Playgroud)
看起来,如果您传递空指针,它将在内部使用一些虚拟模型回退。因此,支持空指针,这是“重置”当前模型的有效方法。