Как получить текущий путь в Qt

#c #qt #path

#c #qt #путь

Вопрос:

У меня есть файл с шейдерами внутри, в моем файле проекта Qt.

Когда я попытался получить путь к приложению

 QCoreApplication::applicationDirPath()
  

Это дает мне :

«C:/Users/USER_NAME/Desktop/PROJECT_NAME/build-PROJECT_NAME-Desktop_Qt_5_7_0_MinGW_32bit-Debug/debug»

Но на самом деле файлы шейдеров находятся в :

«C:/Users/USER_NAME/Desktop/PROJECT_NAME/PROJECT_NAME/shaders «

Как я могу получить правильный путь?

Комментарии:

1. Я не знаю, что такое «файл с шейдерами на нем», но пахнет как хороший кандидат для использования системы ресурсов .

Ответ №1:

Вы получаете правильные результаты. По умолчанию большинство IDE, включая Qt Creator, компилируют проект в каталог, отличный от каталога, в котором хранятся исходные тексты, и запускают его оттуда или из другого места.

Предполагая, что вы используете Qt Creator, вы можете изменить рабочий каталог исполняемого файла на панели настроек проекта:

скриншот

Ответ №2:

В соответствии QCoreApplication::applicationDirPath() с которым возвращается каталог, содержащий исполняемый файл приложения. Вывод, который вы получаете, основан на том, что вы запускаете свое приложение из среды IDE Qt. И он ожидает, что ваши файлы шейдеров будут находиться в том же месте, что и ваш исполняемый файл. Итак, либо вы можете использовать общее местоположение (например. %appdata%) или используйте жестко закодированный путь, в котором находятся ваши файлы шейдеров. Другим решением может быть копирование ваших шейдерных файлов в местоположение исполняемого файла, в вашем случае:

C:/Users/USER_NAME/Desktop/PROJECT_NAME/build-PROJECT_NAME-Desktop_Qt_5_7_0_MinGW_32bit-Debug/debug