C++学习(一七一)QQmlComponent

QQmlComponent类封装了QML组件定义。
组件是具有良好定义的接口的可重用的,封装的QML类型。

可以从QML文件创建QQmlComponent实例。例如,如果有一个main.qml文件,如下所示:

 import QtQuick 2.0
  Item {
      width: 200
      height: 200
  }

以下代码将此QML文件作为组件加载,使用create()创建此组件的实例,然后查询Item的width值:

  QQmlEngine *engine = new QQmlEngine;
  QQmlComponent component(engine, QUrl::fromLocalFile("main.qml"));

  QObject *myObject = component.create();
  QQuickItem *item = qobject_cast<QQuickItem*>(myObject);
  int width = item->width();  // width = 200

要在无法使用QQmlEngine实例的代码中创建组件的实例,可以使用qmlContext()或qmlEngine()。在以下情况下,将在QQuickItem子类中创建子项:

 void MyCppItem::init()
 {
      QQmlEngine *engine = qmlEngine(this);
      // Or:
      // QQmlEngine *engine =
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值