Доброе время суток, опять я.
Загружаю вопросы из массива в ListView
import QtQuick 1.0
Column {
width: parent.width
height: parent.height
anchors.fill: parent
anchors.topMargin: mainHeader.height;
function initQuestion(question, answers) {
textQuestion.text = question
answersModel.clear();
for (var i = 0; i < answers.length; i++)
answersModel.append({'id': answers[i]["id"] , 'answer': answers[i]["text"]});
}
TVHeader {
width: parent.width
imageSource: "qrc:/files/images/" + main.windowParam + "/header.game.on.png";
}
Item {
height: main.fontSize
width: parent.width
Text {
anchors.centerIn: parent;
font.pixelSize: main.fontSize + 8
font.bold: Font.Bold;
text: "Вопрос 1/9000"
}
}
Rectangle {
width: parent.width
height: main.windowParam / 3
color: "transparent"
Image {
anchors.centerIn: parent;
source: "qrc:/files/images/" + main.windowParam + "/question.bar.png";
}
Text {
id: textQuestion
anchors.fill: parent
anchors.topMargin: main.windowParam / 36
anchors.leftMargin: main.windowParam / 15
anchors.rightMargin: main.windowParam / 15
text: ""
font.pixelSize: main.fontSize + 2
wrapMode: Text.WordWrap
color: "#FFF"
}
}
ListModel {
id: answersModel
}
Component {
id: answerDelegate
Item {
width: parent.width; height: main.windowParam / 7
Image {
id: answerImage
source: "qrc:/files/images/" + main.windowParam + "/answer.bar.purple.png";
}
Text {
text: answer;
font.pixelSize: main.fontSize;
}
MouseArea {
anchors.fill: parent
onClicked: {
answersView.currentIndex = index
console.log("id Вопроса: " + index);
}
}
}
}
ListView {
id: answersView
width: parent.width
height: (main.windowParam / 7)*(answersModel.count+1)
model: answersModel
delegate: answerDelegate
highlightFollowsCurrentItem: false
//highlight: ""
}
}
И хочу что бы при выборе вопроса, тоесть onClicked/onPressed , менялась картинка с "answer.bar.purple.png" на "answer.bar.orange.png".
В случае с простой картинкой, тоесть не в ListView как у нас тут, я бы прописал id и менял бы через id.source,
onPressed: {
id.source = "qrc:/files/images/" + main.windowParam + "/answer.bar.orange.png";
}
но в нашем
случае это не проходит. Во всяком случае у меня. Как быть?