can the Open File dialog be used to select a Folder?

The "Browse For Folder" Windows dialog is very inconvenient because:

  • it has no Path box where I can paste the path I want (eg from Total Commander)
  • it always starts from the Desktop with everything closed

Is there a way to use the "Open File" dialog (which is much better) to select a Folder? Some flag or option or something?

Context: the calibre eLibrary manager which is written in Python and Qt.

It currently displays as on the left. I'd like it to display as on the right BrowserFileDialog

or even better, as the Open File dialog: OpenFileDialog


Solution 1:

You can try this one:

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

This one is used to choose a directory, and will popup a dialog like you show at last.

Demo:

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

Solution 2:

You can set the file mode in QFileDialog to QFileDialog::Directory

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

Or You can use QFileDialog::setOption with value QFileDialog::ShowDirsOnly