使用 C++ 插件(qrc)在 Ubuntu QML 应用中添加图像文件

使用 C++ 插件(qrc)在 Ubuntu QML 应用中添加图像文件

我正在使用 ubuntu-sdk 编写带有 C++ 插件的 Ubuntu QML(手机)应用程序。我的应用程序包含一个 png 图像,为了将该图像包含在二进制文件中(以便显示在手机上),我创建了一个 qrc 文件。

我的 qrc 文件如下所示:

<!DOCTYPE RCC><RCC version="1.0">
<qresource>
    <file>../../../app/graphics/bigredbutton.png</file>
</qresource>
</RCC>

我试过什么带有 C++ 插件(cmake)的 QML 应用程序添加资源文件建议并让桌面版本运行。但是,当我在 Aquaris E4.5 上运行该应用程序时,图像没有显示,并且出现以下错误:

QML QQuickImage:无法打开:file:///opt/click.ubuntu.com/ProjectName.Nickname/0.1/share/qml/app/graphics/bigredbutton.png

我想要显示的图像存储在 /ProjectName/app/graphics 目录中。我将 qrc 文件包含在后端目录中,并在后端目录中的 CMakeLists.txt 中添加了链接问题指示的行:

set(CMAKE_AUTORCC ON) 
qt5_add_resources(RESOURCES modules/ProjectName/myres.qrc)

图像/qrc 文件应该存储在哪里,或者将图像打包在二进制文件中并在 Ubuntu Phone 上成功启动应用程序需要哪些其他配置?

我在 Ubuntu 15.10 上使用最新的 ubuntu-sdk 版本。

答案1

这对我有用。
我的 resources.qrc 位于 {PROJECT_DIR}/resources 中:

<RCC>
    <qresource prefix="/180">
        <file alias="five">180/five_180.png</file>
        ...
    </qresource>
</RCC>

在我的 backend/CMakeLists.txt 中我有:

qt5_add_resources(RESOURCE_ADDED ${CMAKE_SOURCE_DIR}/resources/resources.qrc)
...
add_library(Projectnamebackend MODULE
    ${RESOURCE_ADDED}
)
...
add_custom_target(Projectnamebackend-qmldir ALL
    COMMAND cp ${CMAKE_CURRENT_SOURCE_DIR}/modules/Projectname/qmldir ${CMAKE_CURRENT_BINARY_DIR}/Projectname
    DEPENDS ${QMLFILES} ${RESOURCE_ADDED}
)

然后我可以像这样在 .cpp 文件中使用这些图像:

m_image = QImage(":/180/one");

该项目具有 IDE 提供的默认示例应用程序结构。
希望这对您有所帮助。

相关内容