Я хочу поставить условие, если условие истинно, а затем показать изображения. Но когда я запускаю этот код, я получаю сообщение об ошибке. Он показывает, что изображение не определено вот мой пример кода
Row{
spacing:5
Component.onCompleted:{
if ( my condition is true ==true)
{
image.source = "image_path"
}
}
Repeater{
model: 4
Image {
id: image
Layout.alignment: Qt.AlignHCenter
fillMode: Image.PreserveAspectFit
}
}
}
предположим, у меня есть условие, если мой пароль == 'y', тогда я должен показать изображения. если я использую один образ, то он работает нормально, но внутри повторителя он не работает
Ссылка на идентификатор внутри Repeater не работает, так как Repeater немного нарушает область видимости.
Но если вы измените логику, она сработает: вы можете привязать свойство source
внутри делегата к новому свойству основного элемента управления (которое я назвал control
здесь):
Row {
id: control
spacing:5
property bool show : false
Repeater{
model: 4
Image {
id: image
Layout.alignment: Qt.AlignHCenter
fillMode: Image.PreserveAspectFit
source: control.show ? "image_path" : ""
}
}
}
Image
находится внутри повторителя, который в основном представляет собой другую область, поэтому из основного qmlimage
неизвестно. Более того, к кому из 4image
вы бы хотели обратиться? Если вы покажете немного больше о своем состоянии, можно написать подходящий ответ.