QML| QML 组件

QML组件通过Component类型实现可重用性,允许在QML文档内部定义组件,如同独立QML文件。Component内的QML类型在需要时加载,如在Loader中。Component常用于ListView的delegate属性,定义列表项的显示方式。Qt.createComponent()则用于动态创建组件,其上下文与声明处一致,确保组件实例能访问相应属性。
摘要由CSDN通过智能技术生成

# | QML 组件 |

    组件是可重用的、封装好的QML类型,并提供了定义好的接口。组件一般使用一个.qml文件定义。前面讲到的使用QML文档定义对象类型,其实就是创建了一个组件。这种使用独立QML文件创建组件的方法这里不再讨论。除了使用单独的QML文件,还可以使用Component类型在一个QML文档中定义一个组件。这种方式是很有用的,例如在QML文件中重用一个小型组件,或定义一个逻辑上属于该文件中其他QML组件的组件。

    下面的例子中在文档内部使用Component类型定义了一个组件,其他只包含一个Rectangle,该组件被多个Loader对象使用。

注意,一般Rectangle会自己渲染并进行显示,但是这里却不会。因为它定义在一个Component内部。组件内部封装的QML类型相当于定义在独立的QML文件中,会在需要时才进行加载(例如这里由两个Loader对象进行加载)。因为Component不是继承自Item,所以不能对其进行布局或锚定其他对象。

    定义Component与定义QML文档类似。QML文档包含一个唯一的根对象来定义组件的行为和属性,并且不能在根对象之外定义行为或属性。类似的,Component定义也包含一个唯一的根对象(例如这里的Rectangle),并且不能在根对象之外定义任何数据,只能使用id进行引用(例如在Loader中使用redSquare)。

    Component类型一般用于为视图提供图形组件。例如,ListView:

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Qt历险记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值