【问题标题】:Import Qt resources when are main.cpp and GUI classes in dependend static lib project,在依赖静态库项目中的 main.cpp 和 GUI 类时导入 Qt 资源,
【发布时间】:2010-02-02 13:18:53
【问题描述】:

场景:

我有安装了 Qt Visual Studio 插件的 MSVC2005。在我的解决方案中,有一个项目 A 由多个纯 C++ 代码模块组成,构建为可执行文件A.exe。项目 A 不包含带有 main().cpp 文件,但依赖于项目 B

B 是一个作为静态库构建的 Qt 项目。它包含多个 GUI 类和一个 Qt 典型的 main.cpp()。编译链接 AB 就像一个魅力,我有一个 Qt 应用程序。我制作了一些 A 的分支(Afork1Afork2 等),它们都共享相同的 GUI 界面,但对底层业务逻辑。我可以批量构建A.exeAfork1.exe、...等,它们都有相同的 GUI,非常简洁。

问题:

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

【问题讨论】:

    标签: qt visual-studio-2005 linker


    【解决方案1】:

    您需要显式初始化资源。来自Qt docs

    如果你有静态资源 图书馆,你可能需要强制 通过初始化您的资源 调用 Q_INIT_RESOURCE() 与 .qrc 文件的基本名称。为了 示例:

    int main(int argc, char *argv[])
    {
        QApplication app(argc, argv);
        Q_INIT_RESOURCE(graphlib);
        ...
        return app.exec();
    }
    

    【讨论】:

      猜你喜欢
      • 2013-08-14
      • 2010-11-26
      • 1970-01-01
      • 2013-07-26
      • 1970-01-01
      • 1970-01-01
      • 2012-03-07
      • 2015-03-20
      • 1970-01-01
      相关资源
      最近更新 更多