QDir::current();//это должно вернуть главный исполняемый каталог
Нет, не должно! Нет, если только вы не измените его, чтобы он сначала указывал туда.
Я совершенно серьезен, когда скажу следующее: Это миф, фантазия, как бы вы это ни называли, я понятия не имею, что натолкнуло вас на эту идею. Укажите мне спецификацию, в которой это сказано. О, вы не можете, потому что нет такой спецификации, нет такого требования. Это чей-то мираж сумеречного часа, который, кажется, увековечивает себя бесконечно. Если вы услышали это от кого-то, вы имеете полное право рассердиться на них в эту же минуту, ибо они оказали вам большую медвежью услугу.
Вообще говоря, для приложений, которые обычно не запускаются из командной строки, начальный рабочий каталог может быть любым, и это будет платформа-и зависит от конфигурации сеанса/системы. Для типичного приложения с графическим интерфейсом предполагать, что какой-либо конкретный начальный рабочий каталог является дурацкой затеей и полностью ошибочным.
Как только вы измените его так, как вам нужно, вы, конечно, получите полный контроль над ним, но начальный рабочий каталог должен считаться случайным и неподконтрольным вам сильный>.
Например, в Windows я могу запустить ваше приложение с помощью ярлыка Проводника, где я могу указать любую желаемую папку запуска, и у вас нулевой контроль над ней. В OS X Finder устанавливает рабочий каталог на то или иное, IIRC на папку, в которой находится пакет приложений. Опять же, вы, как разработчик, не имеете никакого контроля над этим, если только в пакете нет каких-либо настроек, которые вы могли бы добавить для этого, но они зависят от платформы и будут игнорироваться, если ваше приложение не запускается через механизмы Finder или API пакета (они наверное как-то иначе называется). И так далее. Это совершенно произвольно, и бессмысленно зависеть от его начального значения.
Если вы хотите сослаться на каталог установки или исполняемый каталог приложения, сделайте это явно. Не делайте никаких предположений относительно начального рабочего каталога приложения с графическим интерфейсом.
person
Kuba hasn't forgotten Monica
schedule
30.06.2015
this should return the main executable directory
: Это не обязательно так. Пользователь может запустить ваше приложение с любым начальным рабочим каталогом. - person Francis Gagné   schedule 30.06.2015