我試圖按名稱,創建日期和上次訪問日期(所有升序和降序)對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