Всем доброго времени.
К примеру, у меня есть UI, в котором выводятся два одинаковых списка ListView, которые делят
экран ровно пополам (т.е. один список слева, а другой справа). Эти списки (компоненты)
могут загружаться и отображаться в любое время при поможи Liader-а. Но также эти списки
могут быть не загружены (как все , так и какой-то из них), а вместо списка загружен другой
компонент (виджет).
Задача: Нужно определять, в каком из лоадеров на данный момент загружен список для
того, чтобы по клавишам Key_Left/Key_Rigth менять индекс у загруженных списков. Если
загружено два списка, то их индексы должны меняться вместе.
В общем случае команды на инкремент/декремент индекса я получаю по сети, т.о. здесь
кнопочки Key_Left/Key_Rigth просто для примера.
Пока сделал как-то так:
Item {
id: window
anchors.fill: parent
Loader {
id: leftScreenLoader
x: 0; y: 0; width: window.width / 2; height: window.height;
source: "qrc:/qml/Menu.qml"
}
Loader {
id: rigthScreenLoader
x: window.width / 2; y: 0; width: window.width / 2; height: window.height;
source: "qrc:/qml/Menu.qml"
}
// Emulate key-press (on the real keyboard)
focus: true
Keys.onPressed: {
switch (event.key) {
case Qt.Key_Left:
leftScreenLoader.item.decrementCurrentIndex();
break;
case Qt.Key_Right:
leftScreenLoader.item.incrementCurrentIndex();
break;
default:
break;
}
}
}
Здесь пока меняется индекс у левого меню (который ListView).
Но проблема в том, что в левом лоадере может быть загружен не ListView (не менюшка),
а какой-то иной компонент, у которого нет свойства типа increment(decrement)CurrentIndex().
Так вот, как бы это разрудить? Или, может есть иной путь как это делать?