我有这些QML行:
Item {
id:container
Rectangle {
id:rec1
width:20; height:20; x:20; y:20
color:"blue"
MouseArea {
onClicked:rec1.forceActiveFocus();
}
//bla bla
}
Rectangle {
id:rec2
width:20; height:20; x:200; y:200
color:"red"
MouseArea {
onClicked:rec2.forceActiveFocus();
}
//bla bla
}
}
当我点击其中一个矩形时,它会获得焦点而其他焦点会失去焦点。 这就是我想要的,好吧,但是我想要一个矩形失去焦点,当我点击白色空间,矩形和项目,项目ID:容器?
我应该在哪里做什么?
答案 0 :(得分:4)
焦点的反面是关注别的东西。 如果您不希望任何矩形有任何焦点,请调用
container.forceActiveFocus()
样本解决方案
Rectangle {
id: container
width: 240
height: 240
color: activeFocus ? "black" : "white"
MouseArea {
z: 1
anchors.fill: parent
onClicked: container.forceActiveFocus();
}
Rectangle {
id:rec1
width:20; height:20; x:20; y:20
z: 2
color: activeFocus ? "blue" : "lightblue"
MouseArea {
anchors.fill: parent
onClicked:rec1.forceActiveFocus();
}
//bla bla
}
Rectangle {
id:rec2
width:20; height:20; x:200; y:200
color: activeFocus ? "red" : "lightsalmon"
z: 2
MouseArea {
anchors.fill: parent
onClicked:rec2.forceActiveFocus();
}
//bla bla
}
}
答案 1 :(得分:3)
除非您使用FocusScope处理更复杂的图层,否则您可以将焦点设置为false:
rec1.focus = false;