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

时间:2015-01-15 12:07:57

标签: qt focus qml qt-quick

我想通过单击Item中的任意位置为FocusScope设置activeFocus。 有没有办法实现这一点,而没有MouseArea覆盖整个项目?因为它必须覆盖Item中的所有元素,使它们不可点击。

我对QtQuick / QML很陌生,并且很难理解如何正确实现FocusScopes。我已经读过有关传播点击信号的信息,但无法使其发挥作用。

假设我有这样的东西(没有FocusScopes的可读性):

Rectangle
{
    id: outerRectangle

    width: 1000
    height: 1000

    // various controls in here

    Rectangle
    {
        id: innerRectangle

        anchors.centerIn: parent

        width: 200
        height: 200

        // even more controls in here
    }
}

当我在outerRectangle上的任何地方单击时,我希望outerRectangle获取activeFocus,反之则为innerRectangle。但是两个矩形的所有控件仍然必须正常工作。 我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

使用Item围绕FocusScope

FocusScope {
   Item {
       focus: true
   }
}

请参阅Qt Doc