• 10275阅读
  • 6回复

QFileSystemModel 过滤的问题 [复制链接]

上一主题 下一主题
离线zac372424332
 
只看楼主 正序阅读 楼主  发表于: 2010-12-24
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —
最近在做一个资源管理器的例子,想要实现文件夹过滤的功能。

我用
QFileSystemModel::setFilter(QDir::Dirs| QDir::NoDotAndDotDot);
QFileSystemModel::setNameFilters(filters);
来实现过滤,当没有中文件夹的时候,能够正常地过滤,
但当选中了文件夹之后,再过滤除了显示过滤之后的文件夹之外还会显示选中的文件夹。
按键“文件夹1“用来过滤“文件夹2"和”文件夹3“,只显示文件夹1.
当没选中文件夹时,结果如图:


但当选中了“文件夹3“时,结果如图:

请问怎么才能把选中的文件夹也过滤掉呢?谢谢!
离线cycloneii

只看该作者 6楼 发表于: 2010-12-25
用来QSortFilterProxyModel,那么从View那里得到的QModelIndex需要用QSortFilterProxyModel的MapToSource来转换成QFileSystemModel的QModelIndex,从model那里得到的QModelIndex也要用MapFromSource转换才能用于view
离线zac372424332
只看该作者 5楼 发表于: 2010-12-25
改成QSortFilterProxyModel了,但是其它地方出了问题。。。
离线zac372424332
只看该作者 4楼 发表于: 2010-12-25
回 4楼(cycloneii) 的帖子
我试试
离线cycloneii

只看该作者 3楼 发表于: 2010-12-25
我也做过类似的文件浏览器,没有你说的问题。
我是从QSortFilterProxyModel派生了一个子类,里面做了排序(重载lessThan函数)和过滤(重载filterAcceptsRow函数)
离线zac372424332
只看该作者 2楼 发表于: 2010-12-25
回 2楼(cycloneii) 的帖子
我的意思是在没过滤之前选中,再过滤
离线cycloneii

只看该作者 1楼 发表于: 2010-12-24
图片看不见了
有个问题:
既然已经过滤掉了,为什么还能选中呢?
快速回复
限100 字节
 
上一个 下一个