当前位置 : 主页 > 编程语言 > java >

[Qt] FocusScope的作用

来源:互联网 收集:自由互联 发布时间:2022-09-29
如果在处理焦点变换时无法达到预期,则需要考虑引入 FocusScope 来管理 focus 事件。 FocusScope继承Item,是一个工具类组件,没有外观,一般都作为root组件出现。 QML中事件的传递顺序是


如果在处理焦点变换时无法达到预期,则需要考虑引入 FocusScope 来管理 focus 事件。

FocusScope继承Item,是一个工具类组件,没有外观,一般都作为root组件出现。

QML中事件的传递顺序是 “从外而内,从下而上” ,这个顺序是和qml内部组件实例化顺序一致的。



Rectangle{

//截断focus事件

Rectangle{
//由于外层截断了focus,所以永远无法获取focus事件
}

Rectangle{
//由于外层截断了focus,所以永远无法获取focus事件
}

}


FocusScope{
id:root
//永远不截断focus事件,会立刻传递给自己的children,从下向上找到第一个focus属性是true的child,把focus事件传给它

Rectangle{
id:rec2
focus:true
//因为rec1设置了focus = false,所以root会把focus事件传递给rec2,有因为focus=true,所以会截断并获取事件
}

Rectangle{
id:rec1
focus:false
//因为设置了focus = false,所以截断
}

}
上一篇:[Qt] QML底层工作原理
下一篇:没有了
网友评论