qml C++之间交互小结()

1. 在cpp中,不能定义引用。 

Q_INVOKABLE functionCall(QString & ref);
Q_INVOKABLE使functionCall能在qml中被调用,ref是个引用,会报undefiner的错误。

2. 在qml中,通过CPP返回指针能达到内存共享

//cpp code
struct Car{
  int a;
  int b;
}
Q_INVOKABLE  Car * functionCall(){
   return new Car;
}


//qml code
Item{
  var car;
  Button{
     onClicke:{
         car = functionCall();//
         car.a = 9;  //可以修改在CPP中new出来的Car;
     }
  }
}

3. 在CPP中,可以使用指针访问qml中的组件

//cpp code 
class Stu{
    int a;
}

//qml code 在其它地方把class Stu注册为qml组件名Student
Student{//使用组件名Student
    id:std1;
}

//cpp code
int main(){
   set(std1);
}

//cpp code
Q_INVOKABLE set(Student * p){
    p->a = 9;//访问qml中的变量
}

4. Qt类型QString,QVariantList,QVariantMap,QStringList,等等,可以直接在qml c++交互使用

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值