QAbstractItemView::setRootIndex(const QModelIndex & index) 失效

问题:

在逻辑中使用了, QAbstractItemView::setRootIndex(const QModelIndex & index), 

第一次设置生效, view 进入了model 中指定的item, view 内只显示该item内部的children items. 这个效果是我要的.

 

bug:

对 model, view,等做过一些操作后(最有代表性的是:过滤), root item 不再是我人为设定的了, 变成了"整棵树"原始model的root.

 

重现方式:

用 QFileSystemModel 方式, 查阅 某指定文件目录, 并对其内容过滤, 再之后"清空"过滤条件; 若 root model index 丢失, 则view会显示整个计算机目录.

 

bug原因:

在过滤等操作时, 如果没有任何东西被"接受"(accept), 则指定的 root model index 丢失, 因此失效. 

 

解决:

至少在过滤时, 让指定的 root index "通过"过滤, 保证了 root model index 的有效性.

 

 

 

posted @ 2014-06-11 14:50  liuxu_lx7  阅读(813)  评论(0编辑  收藏  举报