试着更好地理解Item的用法



我正在学习QML教程,在教程的第一部分使用Rectangle之后,他们已经开始使用Item作为创建的每个组件的基础。

问题是,color似乎不是Item的有效属性。我不明白为什么。

然后,我从不同的地方在线查看了一堆示例组件定义,它们似乎都使用Item作为顶级类,然后紧接着使用Rectangle。将Rectangle封装在Item中有什么意义?为什么不直接使用Rectangle作为顶级类呢?

来自Qt文档:

对于创建组件(或显示简单场景),有可以用作顶级组件的不同元素。到显示一个简单的场景,一个矩形作为顶级组件足够矩形、FocusScope、Component、QtObject、Item是作为顶级组件的常用元素。

因此,您可以将任何元素作为顶级组件。

请注意,QML视觉项目,如RectangleTextEditImage。。。继承CCD_ 11。Item可用于将项目分组在一起。可以使用Item创建一个不可见的容器来容纳其他组件。因此,它便于处理子对象和处理焦点宽度和高度等属性。

我认为将Item作为顶级组件就像拥有一个用于制作任意QML组件的模板。当您的自定义组件加载到另一个QML场景中时,该组件将保留顶级组件的属性。因此,您可以使用像Item这样的通用非可视化元素作为顶级项,并公开任意属性。

您可以将Item视为一个非视觉矩形,这对系统来说更容易、更快地绘制,因为没有什么可绘制的。使用Item还是Rectangle作为顶级元素并没有太大区别——不使用超出所需的资源只是一种很好的编程实践。

如果你在某个时候开始创建自己的非视觉元素,你会更加欣赏Item。

相关内容

  • 没有找到相关文章

最新更新