QML アプリのダイアログに画像が表示されています。後で onClicked を使用してその画像を変更できるようにしたいと考えています。これを関数に渡し、新しいソース URL に必要な変数が次のいずれかであるかどうかを確認します。それらが欲しい。
Image.source = "NEWURL" を使用するだけで試しましたが、これはうまくいきません。また、画像が含まれているコンポーネントのIDと、次のようなダイアログ: id.source = "neurl" - 行きません。
それ、どうやったら出来るの?
編集: コードを追加しました。関数と listitm の両方でクリックしていました。画像は Web 画像であり、url 内に conncectedUser 値 (ユーザー名) が必要です。
関連するすべてのコードは次のとおりです。
// Check if users is really a user, and if; show skin
function checkCurrentUser(currentUser) {
console.debug('Debug: Check user "'+currentUser+'" if actually a user.')
if (currentUser == "Ingen online") {
currentUser = "Notch" // reset currentUser if pushed earlier
console.debug('Debug: It was not a real user. Showing '+currentUser+' instead')
Image.source = "http://blabla"+currentUser+"yesyes"
}
else {
console.debug('Debug: It was a real user.')
Image.source = "http://blabla"+currentUser+"yesyes"
}
return "http://blabla"+currentUser+"yesyes""
}
// the dialog I want to show with a image
Component {
id: userDialog
Dialog {
id: dialogueUser
title: i18n.tr("Image")
Image {
id: usersSkin
fillMode: Image.PreserveAspectFit
source: "URL"
sourceSize.height: 1200
}
Button {
text: i18n.tr("Close")
color: "red"
onClicked: PopupUtils.close(dialogueUser)
}
}
}
// and then the list containting each link, which on click should show the user image
ListView {
id: userList
width: parent.width
height: units.gu(5)
model: msmData
delegate: ListItem.Standard {
text: connectedUser
onClicked: {
console.debug('Debug: User clicked "'+connectedUser+'"')
checkCurrentUser(connectedUser)
PopupUtils.open(userDialog, userList)
}
}
header: ListItem.Header { text: i18n.tr("Connected Users") }
section.property: "type"
section.criteria: ViewSection.FullString
section.delegate: ListItem.Header { text: i18n.tr(section) }
}