3

我尝试以下方法打开一个文件对话框,该对话框应显示用户主目录:

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

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

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

4

2 回答 2

7

在 Mac OSX 中,QDir::homePath()返回 HOME 环境变量的内容。因此,如果此变量为空,则返回一个空字符串。

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

于 2012-12-25T20:31:59.040 回答
3

按照前面的建议使用QDir::homePath()或考虑使用 Qt5 的QStandardPaths类。

于 2012-12-25T21:01:44.410 回答