【发布时间】:2011-05-18 04:00:57
【问题描述】:
我有一个带有 SVG 图标的 Qt4 应用程序,使用 mingw 编译(在 Windows 中),链接到 Qt 共享库。
当应用程序运行时,SVG 图标显示在 linux 中的调试和发布版本中,但在 Windows 中,SVG 图标仅在调试版本中显示,而不在发布版本中显示。
所有 SVG 图标都列在 project.qrc 中,project.pro 有 RESOURCES = project.qrc。应用程序使用 QtSvg4.dll(版本 4.7.0)。
Qt 4.7.0、Qt Creator 2.0.1、mingw/g++ 4.4.0。
解决方案更新: 在应用程序目录中,创建/imageformats/ 目录并将qsvg4.dll 放在那里而不是应用程序目录本身,或者创建一个具有适当路径的qt.conf 文件。更多信息在deploying plugins。
【问题讨论】:
-
您的图标代码是什么样的?也许您有重要的调用包含在 assert/Q_ASSERT 中?那么它们可能不会在发布模式下执行。
-
弗兰克:感谢您的回复。我看了看,它们没有被包裹在断言中。图标在代码和 ui 文件中设置如下: QPushButton *buttonX = new QPushButton(QIcon(":/images/buttonX.svg"), "Do X", this);或
。图标也会出现在 linux 发行版本中。:/images/iconX.svg :/images/iconX.svg