2
Я пытаюсь понять это некоторое время, и я застрял. Итак, у меня есть простой ListView с расширяющимися делегатами и панель инструментов с надписью «Назад» над ним. Это то, что я хочу, - это перенаправить действие onClick из кнопки в текущий расширенный элемент (главным образом, чтобы свернуть его).QML: ListView и панель инструментов с кнопкой «Назад»
Я отправлю код после того, как я очистить его, но сейчас это должно быть его (не рабочий пример):
Rectangle {
id: main
Toolbar {
id: myTolbar
Button{ id: backButton }
}
ListModel {
id: myDelegate
ListElement { option: "OptionA" }
/// .... etc.
}
ListView {
id: myList
model: dataModel
delegate: myDelegate
}
Component {
id: myDelegate
Text{ text: option }
states: State{
name: 'details'
PropertyChanges { } //some property magic
}
MouseArea {
onClick: state='details'
//!!!! here I need some help - how to "tell" backButton
//to change state of currently shown item back to default state ('')
}
}
}
Спасибо! Мне нравится ваш подход. Я думал о какой-то форме межсоединения, но, используя QML, кажется, что нужно обернуть свой собственный разум разными способами. – yatsa
Теперь я думаю, если в QML можно динамически присоединить компонент в качестве обработчика сигналов от другого - как я пытался в первую очередь. Если нет, я также, вероятно, попытаюсь перенести ваш пример на следующий уровень: несколько видов (списки, сетки, пользовательские экраны и т. Д.) С несколькими подзонами и панелью инструментов с кнопками «назад/вперед», чтобы просмотреть их. Некоторый взгляд на стек приходит на ум, но мне придется это понять. Во всяком случае, у меня нет причин хвастаться и не принимать ваш ответ, поскольку он соответствует именно тому, что я просил :) Спасибо, сэр! – yatsa
Проблема в том, что AFAIK, нет возможности манипулировать компонентами делегата извне – Koying