Qt 通过单击项目中的任意位置设置activeFocus

Qt 通过单击项目中的任意位置设置activeFocus,qt,focus,qml,qt-quick,Qt,Focus,Qml,Qt Quick,我想通过单击项目中的任意位置来设置聚焦镜的activeFocus。 有没有一种方法可以实现这一点,而不必在整个项目上使用鼠标earea?因为它必须覆盖项目中的所有元素,使它们不可拾取 我是QtQuick/QML的新手,在理解如何正确实现聚焦镜方面有困难。我读过关于传播点击信号的文章,但没能让它起作用 假设我有这样的东西(为了可读性没有聚焦镜): 我希望在单击outerRectangle上的任意位置时,outerRectangle获得activeFocus,反之亦然,单击innerRectangl

我想通过单击项目中的任意位置来设置聚焦镜的activeFocus。 有没有一种方法可以实现这一点,而不必在整个项目上使用鼠标earea?因为它必须覆盖项目中的所有元素,使它们不可拾取

我是QtQuick/QML的新手,在理解如何正确实现聚焦镜方面有困难。我读过关于传播点击信号的文章,但没能让它起作用

假设我有这样的东西(为了可读性没有聚焦镜):

我希望在单击outerRectangle上的任意位置时,outerRectangle获得activeFocus,反之亦然,单击innerRectangle。但两个矩形上的所有控件仍必须正常工作。
我如何才能做到这一点?

聚焦镜围绕
项目

FocusScope {
   Item {
       focus: true
   }
}

请参见

MouseArea
可以设置为不同的
z
级别,以便它不会覆盖其他控件。除此之外,我不知道你是否已经知道了,但它可能会引起人们的兴趣。也要考虑到。希望有帮助。很遗憾,设置Z没有帮助。一旦鼠标earea位于另一个控件之下,它将不再注册单击。
FocusScope {
   Item {
       focus: true
   }
}