Пользовательский QFIleSystemModel с QFileDialog - PullRequest
2 голосов
/ 22 марта 2012

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

Сейчас я пытаюсь реализовать графический интерфейс для этой виртуальной файловой системы, и я хотел использовать QFileDialog для «сохранения» в виртуальной файловой системе.

Я провел небольшое исследование, и, похоже, мне нужно будет создать подкласс QFileSystemModel или реализовать модель прокси. Последняя, ​​кажется, больше предназначена для модификации существующих моделей для сортировки и фильтрации, хотя я хочу полностью заменить ее, поэтому я не думаю, что это хороший вариант. Я копался в исходном коде QFileSystemModel, и его также трудно переориентировать. Я новичок в Qt Model / View, поэтому могу ошибаться.

Каков правильный способ перепрофилирования QFileDialog для виртуальной файловой системы? Я думаю, что это будет, по крайней мере, несколько задокументировано, так как я могу вспомнить несколько сценариев, где это может быть полезно.

Если бы кто-то мог указать мне правильное направление, я был бы очень благодарен.

1 Ответ

0 голосов
/ 22 марта 2012

Вот что я бы сделал:

  • Реализация структуры данных для виртуальной файловой системы в качестве пользовательской QAbstractItemModel
  • Создание собственного диалогового окна сохранения файлакак QDialog, показывающий QTreeView, присоединенный к вышеупомянутой модели
...