2010-12-07 12 views
3

QFileSystemModelを名前、作成日、最終アクセス日(すべて昇順と降順)でソートしようとしています。私はソートのためにQSortFilterProxyModelを使用しています。何らかの形で並べ替え順序を変更すると、奇妙な効果があります。名前が削除されるまで表示される文字数は非常にばらつきます。ソート順に応じて、3つの文字(Pro ...)を持つものと10(Programms)を持つものがあります。私は既にビューのグリッドサイズを十分に大きく(100x100)設定し、アイコンサイズを変更してもビューには影響しません。QListViewは、モデルのソート順に応じて異なるサイズのアイテムを表示します。

私がQFileSystemModelを直接ソートすると、すべて正常に動作しますが、ファイル名以外の面で並べ替えることはできません。

ここでQSortFilterProxyModelがテキストを消去する動作を変更できますか?私のプロキシがビューに全く影響しないのはなぜですか? QFileSystemModelについての詳しい情報はどこにありますか?私はまだ他の列に何のデータが格納されているのかわかりません(#1はファイル名です)。

スクリーンショット:

alt text

あなたが見ることができるように、ソート順に応じて、ファイル名が省略さ取得したり、そうではありません。 imが降順ソートの場合は、 "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); 
} 

ありがとう:私はソート矢印をクリックしたときに実行されますコードザッツ

+1

いくつかのスクリーンショットを表示してください。そしてコードも。たぶん少しの情報があなたを理解するのに役立つでしょう。 –

+0

@Pie_Jesu最新の質問 – atamanroman

答えて

1

ItemDelegateのどこかにある問題は、アイコンをQListViewにペイントしています。私はそれをサブクラス化し、自分で絵を描き絵を描きました。私はこれを調査し、できるだけ早く(そしてもし可能であれば)詳細な説明を投稿します。