Как открыть файл и каталог в QT - PullRequest
3 голосов
/ 31 марта 2010

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

QString directory = QFileDialog::getExistingDirectory(this, tr("Open Directory"),
      "",
     QFileDialog::ShowDirsOnly
     | QFileDialog::DontResolveSymlinks);

Здесь я могу открыть только каталог. Как открыть файл и каталог, используя одну функцию

Ответы [ 2 ]

2 голосов
/ 31 марта 2010

Ну, я не думаю, что QFileDialog может сделать эту работу ... Может быть, вы можете использовать QDirModel . Это должно сработать ... Нажав кнопку "Обзор" или что-то в этом роде, вы открываете виджет с QTreeView , используя QDirModel , там вы можете взять элемент и его путь как ваш файл / каталог. Для получения дополнительной информации смотрите документацию и пример Dir View в Qt Assistant.

РЕДАКТИРОВАТЬ: Рекомендуется использовать QFileSystemModel вместо QDirModel . Спасибо Патрису за совет.

1 голос
/ 31 марта 2010

Вы должны использовать функцию getOpenFileName для получения файлов и функцию getExistingDirectory для получения каталогов. Вы не можете использовать уникальную функцию из класса QFileDialog для одновременного выполнения обеих функций.

Вы должны сделать это самостоятельно:

  • создание подкласса класса QfileDialog или
  • с использованием QFileSystemModel с QTreeView.
...