forceActiveFocus的反义词是什么?

时间:2011-09-02 17:02:46

标签: qml

我有这些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:容器?

我应该在哪里做什么?

2 个答案:

答案 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;