QQmlComponent加载component

QQmlComponent创建

//main.cpp
QQmlEngine *engine=ne QQmlEngine();
QQmlComponent component(engine);
component.loadUrl(QUrl("qrc:///main.qml"));

if(component.isReady()){
    QObject *myObject=component.create();
    QQuickItem *item=qobject_cast<QQuickItem *>(myObject);
    int width=item->width();
    qDebug()<<width;
}

对应的qml文件

//main.qml
Item{
    width:200
    height:200
}

QQmlExpression

动态执行表达式也是QML的核心概念之一。
QQmlExpression允许客户端在C++中,利用一个特定的QML上下文执行Js表达式。执行结果以QVariant形式返回,并且遵循QML引擎确定的转换规则。

//main.qml
import QtQuick 2.2
Item{
    width:200;
    height:200
}
QQmlEngine *engine=new QQmlEngine;
QQmlComponent component(engin);
component.loadUrl(QUrl("qrc:///main.qml"));

QQbject *myObject=component.create();

QQmlExpression *expr=new QQmlExpression(engine->rootContext(),
object,"width*2");
int result=expr->evaluate().toInt();
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值