我尝试了以下操作来打开一个文件对话框,该对话框应显示用户主目录:
QString fileName = QFileDialog::getOpenFileName(this,
tr("Select database"), QDir::homePath(),
tr("Database Files (*.db *.sqlite)"));
问题在于QFileDialog始终以启动应用程序的目录开头。我有什么想法吗?
BTW:我在Mac OS X上使用Qt 5。
答案 0 :(得分:6)
在Mac OSX中,QDir::homePath()
返回HOME环境变量的内容。因此,如果此变量为空,则返回空字符串。
确保未选中“清除系统环境”选项(在Qt Creator中的项目设置下的“构建环境”下)。当你选中这个框时,Qt基本上会覆盖你程序的每个环境变量的值,所以它看起来是空的。
答案 1 :(得分:2)
如前所述使用QDir::homePath()
或考虑使用Qt5的QStandardPaths类。