Я пытаюсь запустить таймер, когда выбран элемент в ListView. Я делаю это, определяя «работающий» таймер с помощью кода (где определяется пользователем):
running: <containingItem>.ListView.isCurrentItem ? true : false
Если я этого не сделаю, каждый элемент в списке запускает свой таймер включения, поэтому таймер должен быть выключен только go для выбранного элемента списка. Когда я делаю это в компоненте списка, он работает - срабатывает только таймер, связанный с выбранным элементом, остальные - нет. Когда я пытаюсь сделать это вне ListView (и всех содержащих его объектов), это не работает. Кажется, я не могу вызвать команду ListView.isCurrentItem каким-либо способом. Что мне здесь не хватает?
Мой код настроен следующим образом:
Column {
id: lv1
ListView {
id: lv2
model: myModel
}
Component {
id: lv3
Item {
id: lv4
Rect {
Timer {
id: timer1
running: (lv4.ListView.isCurrentItem) ? true : false //this works correctly
}
}
}
}
}
Rect {
Timer {
id: timer2
running: (lv1.lv3.lv4.ListView.isCurrentItem ? true : false //this doesn't work correctly
}
}
Когда я запускаю этот код, я получаю сообщение об ошибке: Не удается прочитать свойство lv4 из undefined