QFileSystemModelを名前、作成日、最終アクセス日(すべて昇順と降順)でソートしようとしています。私はソートのためにQSortFilterProxyModelを使用しています。何らかの形で並べ替え順序を変更すると、奇妙な効果があります。名前が削除されるまで表示される文字数は非常にばらつきます。ソート順に応じて、3つの文字(Pro ...)を持つものと10(Programms)を持つものがあります。私は既にビューのグリッドサイズを十分に大きく(100x100)設定し、アイコンサイズを変更してもビューには影響しません。QListViewは、モデルのソート順に応じて異なるサイズのアイテムを表示します。
私がQFileSystemModelを直接ソートすると、すべて正常に動作しますが、ファイル名以外の面で並べ替えることはできません。
ここでQSortFilterProxyModelがテキストを消去する動作を変更できますか?私のプロキシがビューに全く影響しないのはなぜですか? QFileSystemModelについての詳しい情報はどこにありますか?私はまだ他の列に何のデータが格納されているのかわかりません(#1はファイル名です)。
スクリーンショット:
あなたが見ることができるように、ソート順に応じて、ファイル名が省略さ取得したり、そうではありません。 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);
}
ありがとう:私はソート矢印をクリックしたときに実行されますコードザッツ
!
いくつかのスクリーンショットを表示してください。そしてコードも。たぶん少しの情報があなたを理解するのに役立つでしょう。 –
@Pie_Jesu最新の質問 – atamanroman