QFileSystemModel을 이름, 작성 날짜 및 마지막으로 액세스 한 날짜 (모두 오름차순 및 내림차순)로 정렬하려고합니다. 정렬을 위해 QSortFilterProxyModel을 사용하고 있습니다. 어떻게 든 정렬 순서를 변경할 때 이상한 효과가 있습니다. 이름이 제거 될 때까지 표시되는 문자 수는 매우 다양합니다. 정렬 순서에 따라 일부 항목에는 세 개의 글자 (Pro ...)가 있지만 다른 항목에는 최대 10 개 (Programms)가 있습니다. 뷰 크기에 영향을주지 않는 아이콘 크기를 변경하면서 뷰 크기를 충분히 크게 설정했습니다 (100x100).QListView는 모델의 정렬 순서에 따라 다른 크기의 항목을 표시합니다.
QFileSystemModel을 직접 정렬하면 모든 것이 올바르게 작동하지만 파일 이름이 아닌 다른 측면으로 정렬 할 수 없습니다.
QSortFilterProxyModel이 텍스트를 삭제하는 방식은 어디에서 변경할 수 있습니까? 내 프록시가보기에 전혀 영향을주지 않는 이유는 무엇입니까? QFileSystemModel에 대한 추가 정보는 어디에서 찾을 수 있습니까? 나는 아직도 다른 열 (# 1은 파일 이름)에 어떤 데이터가 저장되어 있는지 알지 못합니다.
스크린 샷 :
당신이 볼 수 있듯이, SORTORDER에 따라 파일 이름이 생략하거나하지 않습니다 얻을. 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