Можно ли использовать диалоговое окно «Открыть файл» для выбора папки? - PullRequest
57 голосов
/ 15 октября 2010

Диалоговое окно Windows «Искать папку» очень неудобно, потому что:

  • в нем нет поля Путь, куда я могу вставить нужный путь (например, из Total Commander)
  • он всегда начинается с рабочего стола, когда все закрыто

Есть ли способ использовать диалоговое окно «Открыть файл» (что намного лучше), чтобы выбрать папку? Какой-то флаг или вариант или что-то?

Контекст: менеджер электронных библиотек , написанный на Python и Qt.

В настоящее время отображается как слева. Я хотел бы, чтобы это отображалось как справа BrowserFileDialog

или даже лучше, как диалог Открыть файл: OpenFileDialog

Ответы [ 2 ]

83 голосов
/ 16 мая 2012

Вы можете попробовать это:

QString QFileDialog::getExistingDirectory ( QWidget * parent = 0, const QString & caption = QString(), const QString & dir = QString(), Options options = ShowDirsOnly ) [static]

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

Демо:

 QString dir = QFileDialog::getExistingDirectory(this, tr("Open Directory"),
                                             "/home",
                                             QFileDialog::ShowDirsOnly
                                             | QFileDialog::DontResolveSymlinks);
22 голосов
/ 15 октября 2010

Вы можете установить режим файла в QFileDialog на QFileDialog::Directory

см. http://qt -project.org / doc / qt-5.0 / qtwidgets / qfiledialog.html # FileMode-enum

Или Вы можете использовать QFileDialog::setOption со значением QFileDialog::ShowDirsOnly

...