【发布时间】:2009-10-02 08:32:24
【问题描述】:
我正在尝试在 Qicons 中使用 SVG 图形。我有一个包含所有图形资源的静态库,以及该静态库中的一个方法,该方法返回预加载了正确图形的 QIcons。我正在尝试这样做:
QIcon icon(":/icons/find.svg");
我已通过 QDir 列出该资源来验证该资源已加载:
qDebug() << QDir(":/icons/").entryList();
但是,未显示 SVG 图标。当我将图标加载代码更改为:
QIcon icon(":/icons/find.png");
一切正常。
问题似乎是 SVG 插件永远不会被加载。我可以获得支持的图像类型列表,其中包含:
(“bmp”、“pbm”、“pgm”、“png”、“ppm”、“xbm”、“xpm”)
但没有提到 SVG。
我已确定在我的静态库 .pro 文件和我的主应用程序 .pro 文件中都使用了 SVG 模块。
编辑:
问题似乎是我静态链接到 Qt,因此插件都是静态库。 QPluginLoader 的文档指出:
请注意,QPluginLoader 不能 如果您的应用程序是静态的,则使用 与 Qt 相关联。在这种情况下,您 还必须链接到插件 静态的。您可以使用 QLibrary 如果 你需要加载动态库 一个静态链接的应用程序。
然而,静态链接到这些插件似乎无济于事(支持的图像格式列表没有增加)。
编辑2:
此外,动态链接到 Qt(在重建我的整个应用程序之后)可以使上面的代码完美运行。但是,我想要静态链接到 Qt,所以现在的问题看起来更多是关于在静态链接到 Qt 时加载 Qt 插件,而不是一般的图标。我将更新帖子标题以反映这一点。
【问题讨论】: