QML是否支持像属性私有的访问说明符?

DNa*_*mto 18 qt qml qt-quick

我只想知道我们在QML中是否有像QML中的私有属性那样的概念访问说明符.

如果不是,如果我想知道我的QML组件中有大约10个属性,但我必须限制只有2个属性的访问权限.我们怎样才能实现这种情况.

Pav*_*pov 30

QML本身没有这样的内置功能,但这里是Qt Quick Components方法:

Item {
  property int sum: internal.a + internal.b
  QtObject {
    id: internal
    property int a: 1
    property int b: 2
  }
}
Run Code Online (Sandbox Code Playgroud)

"内部"对象的属性在Item外部是不可见的,但可以在其中自由使用.

  • 您可以使用任何您想要的元素而不是QtObject. (2认同)
  • 虽然我喜欢你的答案,因为它回答了原来的问题,但我认为最好使用“_”或“__”前缀作为约定,以避免每个组件中都有“QtObject”的额外开销。 (2认同)