На одной из моих страниц QML есть 1 кнопка назад и список, содержащий изображение и текст в каждой строке. Я использую тестовое изображение для кнопки «Назад» и «Список». Кнопка «Назад» может отображать изображение, но listview жалуется на «QML-изображение: невозможно открыть: qrc: /../../../ Users/Jerry/Desktop/LA.png».QML не может открывать изображение более одного раза
Оба изображения и все файлы 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'. Просто попробуйте, и мы увидим, если это проблема. – Evgeny
Это работает! Не могли бы вы объяснить немного больше, почему это работает? – Jerry