使用 SVG 插件部署 QtQuick 2.0 应用程序

Posted

技术标签:

【中文标题】使用 SVG 插件部署 QtQuick 2.0 应用程序【英文标题】:Deploying QtQuick 2.0 Application with SVG Plugin 【发布时间】:2013-02-15 20:48:55 【问题描述】:

我的应用程序是使用 Qt 5.0.1 和 QtQuick 2.0 构建的。它在 Qt Creator 中运行良好,但我无法正确部署它。我将可执行文件(发布版本)复制到桌面上名为“项目部署”的目录中,并添加了一堆 DLL(发布版本,而不是调试)、我的 QML 文件和 SVG 图像。

一切正常,除了 SVG 图像,它根本不显示。我将其中一个转换为 GIF,它显示得很完美。很明显,我没有正确设置 QT SVG 插件。

在定义 QApplication 应用程序之后,我在 main() 中得到了这个:

QStringList libPaths = QCoreApplication::libraryPaths();
libPaths.append(QCoreApplication::applicationDirPath() + "/plugins");
app.setLibraryPaths(libPaths);

Project Deployment/plugins 文件夹中,我放置了iconengines/qsvgicon.dllimageformats/qsvg.dll。在Project Deployment 文件夹中,我有 Qt5Xml.dll(因为我在某处读到因为 SVG 是 XML 格式,所以它使用那个 dll)。

我完全没有想法(和互联网资源)。有人可以帮忙吗?

谢谢!

【问题讨论】:

【参考方案1】:

如果你通过 Dependency Walker 运行 SVG 插件(QSvg.dll),你会发现它依赖于Qt5Svg.dll

【讨论】:

【参考方案2】:

需要放在imageformats文件夹中,例如C:\Program Files\AppFolder\imageformats\qsvg.dll

更多信息在这里:http://doc.qt.digia.com/stable/deployment-plugins.html

【讨论】:

以上是关于使用 SVG 插件部署 QtQuick 2.0 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

QtQuick 2.0 中的重叠鼠标区域

无法为模块“QtQuick”(CMake)加载插件

用于嵌入式设备的 Qt Quick 控件 2.0

如何运行导入 QtQuick2.0 和 QtQuick.Controls 1.1 的应用程序

是否可以在没有 QApplication 的情况下使用 QML 和 QtQuick?

Qt 5.1rc1 在 mac OS X 上部署,我如何部署一个简单的 QtQuick2 应用程序?