为啥有些 QtQuick 控件有隐藏变量?
Posted
技术标签:
【中文标题】为啥有些 QtQuick 控件有隐藏变量?【英文标题】:Why some QtQuick Controls have the hidden variable?为什么有些 QtQuick 控件有隐藏变量? 【发布时间】:2018-03-30 00:33:01 【问题描述】:这个问题其实来自How to scroll to certain row in QML TreeView。 QtQuick
项目的某些属性像 __listView
一样隐藏在 TreeView
中。
我知道有一些基于其他基本组件的复杂 UI 组件。
Qt 提供了使用它的可访问性,但没有在文档中提及它,这样的隐藏属性确实按预期工作得很好。那么为什么 Qt 隐藏属性呢?我要使用它吗?
【问题讨论】:
因为让我们的生活变得悲惨是很重要的。 QML API 通常因缺乏可配置性而臭名昭著。某个地方的某个人认为一种尺寸应该适合所有人,从而为其他人可能设想的附加功能铺平道路。 【参考方案1】:这是在 Qt4 中 QML 开始时创建的约定,我们可以在 link 中找到,这似乎没有在 Qt5 中记录:
私人财产
QML 和 javascript 不会像 C++ 那样强制执行私有属性。那里 是否需要隐藏这些私有属性,例如,当 属性是实现的一部分。作为惯例,私人 属性以两个下划线字符开头。例如,__area, 是可访问但不供公众使用的财产。笔记 QML 和 JavaScript 将授予用户访问这些 属性。
Item id: component width: 40; height: 50 property real __area: width * height * 0.5 //not meant for outside use
【讨论】:
以上是关于为啥有些 QtQuick 控件有隐藏变量?的主要内容,如果未能解决你的问题,请参考以下文章