我试图按名称,创建日期和上次访问日期(所有升序和降序)对QFileSystemModel进行排序。我使用QSortFilterProxyModel进行排序。不知何故,在改变排序顺序时会有一种奇怪的效果:显示直到名称被忽略的字符数变得非常强烈。根据排序顺序,有些项目只有三个字母(Pro ...),而其他项目最多有十个(Programms)。我已经将视图网格大小设置得足够大(100x100),更改图标大小不会影响视图。QListView根据模型的排序顺序显示不同大小的项目
如果我直接对QFileSystemModel进行排序,一切正常,但我无法通过文件名以外的其他方面进行排序。
我在哪里可以改变行为如何QSortFilterProxyModel elides文本?为什么我的代理完全影响视图?我在哪里可以找到有关QFileSystemModel的更多信息?我仍然不知道在其他列中存储了什么数据(#1是文件名)。
截图:
正如你所看到的,根据不同的排序顺序,文件名获得省略掉或者他们不这样做。如果即时通讯排序降序,它的“twai ...”,如果即时通讯排序升序其“twain.dll”。
这就是当我点击排序箭头其被执行的代码:提前
// initialization
fileNameSortModel = new QSortFilterProxyModel(parent);
fileNameSortModel.sourceModel(originalModel); // originalModel is type of QFileSystemModel
// ...
void PFileListWithHeader::onNameSort(Qt::SortOrder order)
{
currentModel = fileNameSortModel;
view->setModel(currentModel);
view->setRootIndex(translateOriginalIndexToProxy(originalModel->index(path)));
currentModel->sort(0, order);
}
谢谢!
请显示一些截图。并且代码也是。也许更多的信息会帮助我们理解你。 – 2010-12-11 14:03:35