【问题标题】:can the Open File dialog be used to select a Folder?可以使用“打开文件”对话框来选择文件夹吗?
【发布时间】:2011-04-25 21:49:45
【问题描述】:

“浏览文件夹”Windows 对话框非常不方便,因为:

  • 它没有路径框,我可以在其中粘贴我想要的路径(例如来自 Total Commander)
  • 它总是从桌面开始,一切都关闭了

有没有办法使用“打开文件”对话框(更好)来选择一个文件夹?一些标志或选项或什么?

上下文:calibre eLibrary manager,用 Python 和 Qt 编写。

它当前显示在左侧。我希望它显示在右侧

甚至更好,作为打开文件对话框:

【问题讨论】:

  • 我也讨厌你不能在“浏览文件夹”对话框中使用快捷方式。他们为什么不把它修好?!

标签: qt openfiledialog


【解决方案1】:

您可以将QFileDialog中的文件模式设置为QFileDialog::Directory

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

或者您可以使用 QFileDialog::setOptionQFileDialog::ShowDirsOnly

【讨论】:

  • code 使用 QFileDialog.getExistingDirectory(QFileDialog.Directory),这会显示不方便的“浏览文件夹”对话框。
  • 我应该使用这样的东西吗?对话框 = 新 QFileDialog(); dialog.setOption(QFileDialog.ShowDirsOnly, true); dialog.getOpenFileName(QFileDialog.Directory);
  • QFileDialog::DirectoryOnly 自 Qt 4.5 起已过时:尝试使用 setOption()
【解决方案2】:

你可以试试这个:

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);

【讨论】:

    猜你喜欢
    • 2012-08-19
    • 2012-03-02
    • 1970-01-01
    • 1970-01-01
    • 2010-10-15
    • 1970-01-01
    • 2018-02-12
    • 1970-01-01
    相关资源
    最近更新 更多