我正在使用 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 提供的默认示例应用程序结构。
希望这对您有所帮助。