【问题标题】:QFileDialog - how to specify home directoryQFileDialog - 如何指定主目录
【发布时间】:2016-12-05 18:35:21
【问题描述】:

我尝试了以下方法来打开应显示用户主目录的文件对话框:

QString fileName = QFileDialog::getOpenFileName(this,
                   tr("Select database"), QDir::homePath(), 
                   tr("Database Files (*.db *.sqlite)"));

问题在于 QFileDialog 总是从应用程序启动的目录开始。任何想法我做错了什么?

顺便说一句:我在 Mac OS X 上使用 Qt 5。

【问题讨论】:

    标签: qt qfiledialog


    【解决方案1】:

    在 Mac OSX 中,QDir::homePath() 返回 HOME 环境变量的内容。所以如果这个变量是空的,它会返回一个空字符串。

    确保未选中“清除系统环境”选项(在 Qt Creator 项目设置中的构建环境下)。当您选中此框时,Qt 基本上会覆盖您程序的每个环境变量的值,因此它看起来是空的。

    【讨论】:

      【解决方案2】:

      如前所述使用QDir::homePath() 或考虑使用Qt5 的QStandardPaths 类。

      【讨论】:

      • OP 已经在使用homePath()。至于QStandardPaths,看起来它在查询主目录时仍然只是调用QDir::homePath()qt.gitorious.org/qt/qtbase/blobs/stable/src/corelib/io/…
      • 我正在使用 QDir:homePath,但 QFileDialog 似乎忽略了它。即使是硬编码的值也会被忽略。
      • 听起来像一个错误,因为它在 Linux 上按预期工作。 @rogergl 你看到this了吗?它说的解决方案与丹尼尔卡斯特罗所做的相同。
      猜你喜欢
      • 2012-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-22
      相关资源
      最近更新 更多