Russian Qt Forum
Ноябрь 01, 2024, 02:07 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: фильтрация в qfilesystemmodel  (Прочитано 2819 раз)
leonike
Гость
« : Июль 28, 2010, 13:46 »

В приложении реальзовать небольшой просмотрщик фалов со скромным функционалом, выглядеть это должно как одна панель TotalCommander, т.е. список директорий и папок, а вверху знак '..', для перехода на верхний каталог.

Использую QFileSystemModel, для сортировки используюю модель, унаследованную от QSortFilterProxyModel. Вьювер - QTreeView.

Столкнуля со следующими проблемами:
1) Как избавиться от отображения знака '.' ?
2) В Windows отображается только содержимое диска C:\, не знаю как перейти на другой диск
3) Если в винде в корне (т.е. в C:\) знак '.' и '..' не отображаются, то в линухе в '/' отображаются оба знака

Думаю, что нужно следить за текущим каталогом и ставить setFilterRegExp


Версия Qt  - 4.6
« Последнее редактирование: Июль 28, 2010, 18:56 от leonike » Записан
toshcka
Гость
« Ответ #1 : Июль 28, 2010, 14:02 »

проблему знака '.' и '..' в '/' в linux можно решить установкой фильтра NoDotAndDotDot к QFileSysteModel
« Последнее редактирование: Июль 28, 2010, 14:37 от toshcka » Записан
leonike
Гость
« Ответ #2 : Июль 28, 2010, 14:38 »

проблему знака '.' и '..' в '/' в linux можно решить установкой фильтра NoDotAndDotDot к QFileSysteModel
спасибо Улыбающийся

над остальными проблемами пока ломаю голову
Записан
leonike
Гость
« Ответ #3 : Июль 28, 2010, 18:51 »

мб кому пригодиться, фильтрацию директории '.' можно осуществлять следующим образом:

bool SortFilterProxyModel::filterAcceptsRow(int source_row, const QModelIndex &source_parent) const
{
    QModelIndex index = m_sourceModel->index(source_row, 0, source_parent);
    return (sourceModel()->fileInfo(index).fileName() != ".");
}
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.121 секунд. Запросов: 20.