这看起来很基本,但由于某种原因,我无法让图像源在下面的超简单QML应用程序中运行。
仅供参考,我正在运行基于Qt 5.3.2的Mac OS-X 10.9.5,Qt Creator 3.2.1。
import QtQuick 2.3
import QtQuick.Controls 1.2
ApplicationWindow {
visible: true
width: 640
height: 480
title: qsTr("Test")
Image {
id: image1
x: 10
y: 10
width: 100
height: 100
source: "testImage.png"
}
}
我收到以下错误:
qrc:/main.qml:10:5: QML Image: Cannot open: qrc:/testImage.png
创建应用程序窗口但不显示图像。我也试过在Rectangle中包装图像,但这没有帮助。
我在这里做错了什么?
“testImage.png”位于项目目录中,我尝试了各种方法来使用资源指定图像路径,绝对,相对,甚至使用QML UI设计器手动指定图像源。
我还要提到为了让Qt 5.3.2正常工作,我遵循了建议HERE的修改。
感谢。
答案 0 :(得分:29)
我认为您的qml
文件位于资源中,因此请尝试将您的testImage.png
图片放入资源中。重新编译应用程序,运行它并检查图像是否正常工作。
所有人都应该在一起。例如:
我的代码:
Image
{
source: "images/earth.png"
如果我从资源中删除此图像,我也会收到此错误,但图像仍然位于文件系统中的正确位置。
当qml
源放置在资源中时,从qml
加载的所有文件也应该在资源中(Qt在资源中搜索此文件,而不是在文件系统中)。
答案 1 :(得分:2)
如果要从本地文件系统查找,请获取文件路径和前缀“ file:”作为源=“ file:/root/Desktop/Rathod.png”
答案 2 :(得分:0)
如果使用的是qrc,请确保将图像添加到项目中。仅将其放在源目录中可能还不够。 例如,我的main.qml位于特定目录中。我将.png移到同一目录中。然后,我“添加现有文件..”并将.png添加到项目中。我的图片有以下内容 来源:“ qrc:/image.png”
答案 3 :(得分:0)
可能有两个问题:
IconImage
拒绝加载。尝试使用另一个可以正常工作的图像
看来Qt Image loader对图像格式非常敏感。qml_qmlcachea.qrc
,然后重试答案 4 :(得分:0)
我遇到了类似的问题,并通过以下方式解决了该问题:
答案 5 :(得分:0)
尝试在“项目”->“构建设置”下关闭Shadow Build。