与forceActiveFocus 相反的是什么?

发布于 2024-12-02 23:37:28 字数 583 浏览 1 评论 0原文

我有这些 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:container 的项目时,我希望一个矩形失去焦点?

我应该在哪里做什么?

I have these QML lines:

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
    }
}

When i click one of the rectangle it gains focus and other lose focus.
This is what i want, ok, but i want one rectangle lose focus when i click white space, out of rectangles and in Item, item with id:container?

What should i do into where?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

美人迟暮 2024-12-09 23:37:28

专注的反面是专注于其他事情。
如果您不希望任何矩形具有任何焦点,只需调用

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
    }

}

The opposite of focus is focussing something else.
If you want no rectangle to have any focus just call

container.forceActiveFocus()

Sample solution

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
    }

}
够钟 2024-12-09 23:37:28

除非您使用 FocusScope 处理更复杂的图层,否则您可以将 focus 设置为 false:

rec1.focus = false;

Unless you're dealing with more complicate layers using FocusScope's, you could just set focus to false:

rec1.focus = false;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文