Я запускаю Qt 5.5 под Windows, и конструктор по умолчанию QDir, кажется, выбирает текущий рабочий каталог, а не каталог приложения.
Я не уверен, что getenv PWD будет работать перекрестноплатформе, и я думаю, что он установлен в текущий рабочий каталог, когда оболочка запустила приложение, и не включает в себя никаких изменений рабочего каталога, сделанных самим приложением (возможно, именно поэтому OP видит такое поведение).
Поэтому я решил добавить несколько других способов, которые должны дать вам текущий рабочий каталог (а не двоичное местоположение приложения):
// using where a relative filename will end up
QFileInfo fi("temp");
cout << fi.absolutePath() << endl;
// explicitly using the relative name of the current working directory
QDir dir(".");
cout << dir.absolutePath() << endl;