属性 QtObject marginHints.QtObject { ... } QtObject { ... }

问题描述 投票:1回答:1

从KDE质体的来源来看,有些小部件声明了 marginHints 财产 这个:

    property QtObject marginHints: QtObject {
        property int left: Math.round(units.smallSpacing / 2)
        property int top: Math.round(units.smallSpacing / 2)
        property int right: Math.round(units.smallSpacing / 2)
        property int bottom: Math.round(units.smallSpacing / 2)
    }

虽然没有在任何地方明确提及,但删除它们实际上破坏了布局。

其他地方是否有记载?它是如何工作的?这是某种QML魔法吗?

c++ qml kde plasma
1个回答
0
投票

看来,QML的范围解析比我想象的要复杂得多。不过阅读文档(也就是RTFM)还是有帮助的。

https:/doc.qt.ioqt-5qtqml-documents-scope.html。

根据该条规定。

组成部分的范围

QML文档中的每个QML组件都定义了一个逻辑范围。每个文档至少有一个根组件,但也可以有其他内联子组件。组件范围是组件中的对象id和组件的根对象属性的结合。

[...]

组件实例层次结构

在 QML 中,组件实例将它们的组件作用域连接在一起,形成一个作用域层次结构。组件实例可以直接访问它们祖先的组件作用域。

将作用域组合在一起,它可能已经被该项目的任何子组件的任何内部组件所使用。

© www.soinside.com 2019 - 2024. All rights reserved.