The hardcoded path is probably OK for package users because there are standard filesystem layouts in all the distributions.  If people build the package from source they don't have to set XTUPLE_LIB_DIR and they can just have the default behavior.

The Qt documentation actually reveals what is wrong with using applicationDirPath:

http://qt-project.org/doc/qt-4.8/qcoreapplication.html#applicationDirPath

Specifically, it is the location of the binary (e.g. /usr/bin/postbooks would mean applicationDirPath returns "/usr/bin").  You would never have any other files in that location.

Instead of just using the macro example, maybe you could implement a helper function to resolve the correct path for any given platform.  E.g. Windows users do often bundle their .exe files and data files in the same directory.