2012-06-04 35 views
0

我有2个我已经做过的Qt项目。一个构建一个库,另一个构建使用该库的GUI。我在图书馆的项目包括我制作的一堆着色器。在我的GUI中,我想引用这些着色器的路径。我的方法是在我的库中有一个名为getLibraryPath()的静态函数,它返回QString将我的文件系统上的路径引用到库。获取外部库中的文件路径

我试过使用QDir::currentPath()QApplication::applicationFilePath()和其他类似的函数返回路径,但它们都返回引用我的GUI路径的路径,而不是库的路径,即使获取路径的函数位于库中。

在我的GUI我尝试做参考的着色器:Shader->addShaderFromSourceFile(QGLShader::Vertex, MyExternalLib::getLibraryPath() + "/shaders/MyVertexShader.vs");

回答

1

库只是一串代码。它没有走自己的道路的概念。做你打算什么的正常途径是:

  1. 如果磁带库是一个单独安装的产品 - 设置安装一个注册表项,并在运行时检查。这将是特定于平台的,除非库是用Qt编写的 - 那么你可以使用QSettings,但要确保你正确设置你的公司名称,应用程序等,因为它不再由QApplication完成。

  2. 如果该库作为应用程序的一部分安装在相同的文件夹树中:请使用QCoreApplication::applicationDirPath(),并在应用程序可执行文件和所需文件之间添加相对路径。

0

我能够通过添加我想要引用到我的库项目中的qrc文件的文件来解决此问题。通过这样做,我可以轻松地引用qrc路径及其中的文件。