3
votes

I tried the following to open a file dialog that should display the users home directory:

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

The problem ist that QFileDialog always starts with the directory from where the application was started. Any ideas what I'm doing wrong ?

BTW: I'm using Qt 5 on Mac OS X.

2

2 Answers

7
votes

In Mac OSX, QDir::homePath() returns the content of the HOME environment variable. So if this variable is empty, it returns an empty string.

Ensure the 'Clear system environment' option (under Build Environment from the project settings in Qt Creator) is not checked. When you check this box, Qt will basically overwrite the value of every environment variable for your program, so it would appear to be empty.

3
votes

Use QDir::homePath() as suggested earlier or consider usage of Qt5's QStandardPaths class.