FocusScope和Row元素中子元素的“焦点”属性

时间:2012-10-09 13:50:44

标签: qt qml

FocusScope是否仅适用于子元素“焦点”属性,还是也考虑了大型儿童“焦点”属性。

即。在下面的代码中,由于Rectangle元素不是FocusScope的直接子元素,因此在设置焦点时会考虑到它。

import QtQuick 1.1

FocusScope {
    width: 100
    height: 66
    Row {
        Rectangle {
            width: 100
            height: 62
            focus: true
            color: "red"
            Keys.onPressed: {
                console.log("hello")    
            }
        }
    }
}

根据程序的输出,在设置焦点时,FocusScope会将Rectangle元素设置为帐户。此功能未记录在案。

来自http://qt-project.org/doc/qt-4.8/qdeclarativefocus.html#qmlfocus Qt docs  “在每个焦点范围内,一个元素可以将Item :: focus设置为true。如果多个Item设置了焦点属性,则设置焦点的最后一个元素将具有焦点而其他元素未设置,类似于当没有焦点范围时。“

目前尚不清楚FocusScope是否认为孙子女(儿童的孩子)是“专注”财产。

1 个答案:

答案 0 :(得分:4)

focus属性告诉FocusScope获得activeFocus后哪个项目将成为焦点,您不应该有focus: true;个项目在它上面,但是项目嵌套在FocusScope中的深度并不重要,总有一个且只有一个聚焦的“结束”项目,如果不使用,他的所有父母都可以收到关键事件重点项目。