QML 不能多次打开图像
Posted
技术标签:
【中文标题】QML 不能多次打开图像【英文标题】:QML cannot open an image more than once 【发布时间】:2016-01-05 19:55:09 【问题描述】:在我的一个 QML 页面中,有 1 个后退按钮和一个列表视图,每行包含一个图像和一个文本。我对后退按钮和列表视图行项目都使用了测试图像。后退按钮可以显示图像,但列表视图抱怨“QML 图像:无法打开:qrc:/../../../Users/Jerry/Desktop/LA.png”。
图像和所有 QML 文件都在资源下。这是代码。
import QtQuick 2.0
import QtQuick.Controls 1.2
Rectangle
anchors.fill: parent
Item
id: advancedBackground
anchors.fill: parent
Button
id: backButton
width: 25
height: 25
anchors.top: parent.top
anchors.topMargin: 25
anchors.left: parent.left
anchors.leftMargin: 25
opacity: backMouseArea.containsMouse ? 0.9 : 0.1
MouseArea
id: backMouseArea
anchors.fill: parent
hoverEnabled: true
onClicked:
leftArrow.visible = true;
rightArrow.visible = false;
stackView.pop();
Image
anchors.fill: parent
fillMode: Image.PreserveAspectFit
// image works fine here
source: "qrc:/../../../Users/Jerry/Desktop/LA.png"
ListView
id: listView
anchors.rightMargin: 40
anchors.leftMargin: 40
anchors.bottomMargin: 30
anchors.topMargin: 90
anchors.fill: parent
delegate: Item
x: 5
width: parent.height
height: 40
Image
height: parent.height; width: parent.height
anchors.left: parent.left
fillMode: Image.PreserveAspectFit
source: imageSource
Text
text: name
height: parent.height
width: parent.width
anchors.left: parent.left
anchors.leftMargin: 50
anchors.centerIn: parent
font.bold: true
anchors.horizontalCenter: parent.horizontalCenter
model: ListModel
ListElement
name: "test1"
// image doesn't work here
imageSource: "qrc:/../../../Users/Jerry/Desktop/LA.png"
ListElement
name: "test2"
// image doesn't work here
imageSource: "qrc:/../../../Users/Jerry/Desktop/LA.png"
在资源下,它包括 AdvancedPages.qml 和 ../../../Users/Jerry/Desktop/LA.png
【问题讨论】:
我的意思是路径应该像qrc:/images/LA.png
。试试看,我们会看看这是否是问题所在。
有效!你能解释一下它为什么起作用吗?
【参考方案1】:
我认为您应该摆脱图像的相对路径。路径应该类似于qrc:/images/LA.png
。
【讨论】:
您能解释一下原因吗?谢谢 @Jerry 答案仅基于我的经验以上是关于QML 不能多次打开图像的主要内容,如果未能解决你的问题,请参考以下文章