Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

Getting the directory path of project



  • Many a times we need to have the directory path where the project is stored as different people might be storing differently.

    When I use QCoreApplication::applicationFilePath() it gives me the following :

    abc/Users/arqam/GITRepo/code-base/foundation/build-XMLGenerator-Desktop_Qt_5_9_1_clang_64bit2-Debug/XMLGenerator.app/Contents/MacOSdef

    But I don't need those extra things and just need my directory path i.e. abc/Users/arqam/GITRepo/code-base/foundation/, so how to get that.


  • Qt Champions 2019

    @Arqam Where do you need it? In your pro file? In your application (if so why?)?



  • Hi @Arqam ,@jsulm is right,what do you really want?The directory of .pro file or the .exe file after compiled?And you want to get it in .pro file or .cpp file.They are a little different to solve each of them.



  • @MartinChan-0 I am looking for in my code, in my application.

    In pro file I guess $$PWD does give.


  • Qt Champions 2019

    @Arqam But why do you need it in your code? Who cares were the project was located?
    Maybe you mean the location of your app after installation?



  • @Arqam Like what jsulm said it usually doesn't matter ,but if u really want u can set the proper path of code in .pro file and make the .exe file a solid path relationship to your .pro file to get the directory u want.(It seems a little foolish...)


  • Lifetime Qt Champion

    Hi
    I use it for data/gfx file loading. if run from creator it loads the data from the project folder.
    That way i do not have to copy data to build folder and they are never out of sync as it uses the real deal.

    in .pro i do
    DEFINES+=PROJECT_LOCATION="$$shell_path($$PRO_FILE_PWD)"

    to use i do
    #define _STR(x) #x
    #define STR(x) _STR(x)

    const char* Location = STR(PROJECT_LOCATION);

    Disclaimer: Not sure its best way or correct way but it worked fine so far.


Log in to reply