J'ai une présentation en deux colonnes avec un ListView dans la colonne de gauche. Avec les touches gauche/droite, je peux changer le focus entre les deux parties de l'application.
En une focalisation active de la colonne de gauche est déléguée à la ListView et, de là, directement à l'une de ses lignes.
Comment puis-je vérifier si la ListView ou l'un de ses enfants a le focus ?
import QtQuick 1.1
FocusScope {
width: 960
height: 540
id: app
focus: true
FocusScope {
id: leftColumn
KeyNavigation.right: rightColumn
anchors.bottom: parent.bottom
anchors.left: parent.left
anchors.top: parent.top
width: 250
focus: true
Rectangle {
id: leftBackgroundColor
anchors.fill: parent
color: contactsList.activeFocus ? "red" : "#E6E6E6"
ListView {
id: contactsList
interactive: true
anchors.fill: parent
focus: true
delegate: Text {
text: name
font.bold: activeFocus
}
model: ListModel {
ListElement { name: "Simon" }
ListElement { name: "Mary" }
ListElement { name: "Jack" }
ListElement { name: "Frank" }
}
}
}
}
FocusScope {
id: rightColumn
KeyNavigation.left: leftColumn
anchors.left: leftColumn.right
anchors.right: parent.right
anchors.bottom: parent.bottom
anchors.top: parent.top
onFocusChanged: console.log("Right focus changed: " + focus + "/" + activeFocus)
Rectangle {
id: rightBackgroundColor
anchors.fill: parent
focus: true
color: activeFocus ? "red" : "#b3b3b3"
}
}
}