情境:
我安装了Qt Visual Studio AddIn的MSVC2005。在我的解决方案中,有一个项目 A 由多个普通的C ++代码模块组成,它们是根据可执行文件A.exe
构建的。项目 A 不包含.cpp
文件main()
,但依赖于项目 B 。
B 是一个构建为静态库的Qt项目。它由多个GUI类和一个Qt典型的main.cpp()组成。编译链接 A 和 B 就像魅力一样,我有一个Qt应用程序。我制作了一些 A ( Afork1 , Afork2 等)的分支,这些分支都与GUI共享相同的界面,但具有不同的自定义设置。基础业务逻辑。我可以批量构建A.exe
,Afork1.exe
,...等等,它们都具有相同的GUI,非常简洁。
问题:
在 B 中,有一个.qrc
文件,其中包含GUI中使用的多个图像,图标等。 GUI类是用Qt Designer精心设计的,我将这些资源添加到GUI小部件中。构建并运行A.exe
后,我无法看到这些图标和图像,它们的空间在小部件中保留,但未填充内容。我猜,ressources没有链接到可执行文件中。有没有办法确保链接作为Qt静态lib项目一部分的资源?
答案 0 :(得分:2)
您需要明确初始化资源。来自Qt docs:
如果您有静态资源 库,你可能需要强迫 通过初始化资源 用Q调用Q_INIT_RESOURCE() .qrc文件的基本名称。对于 例如:
int main(int argc, char *argv[]) { QApplication app(argc, argv); Q_INIT_RESOURCE(graphlib); ... return app.exec(); }