在dependend static lib项目中的main.cpp和GUI类时导入Qt资源,

时间:2010-02-02 13:18:54

标签: qt visual-studio-2005 linker

情境:

我安装了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.exeAfork1.exe,...等等,它们都具有相同的GUI,非常简洁。

问题:

B 中,有一个.qrc文件,其中包含GUI中使用的多个图像,图标等。 GUI类是用Qt Designer精心设计的,我将这些资源添加到GUI小部件中。构建并运行A.exe后,我无法看到这些图标和图像,它们的空间在小部件中保留,但未填充内容。我猜,ressources没有链接到可执行文件中。有没有办法确保链接作为Qt静态lib项目一部分的资源?

1 个答案:

答案 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();
}