QML与C++混合编程

       原文请参考http://blog.csdn.net/foruok/article/details/32698603

       用Qml写界面,复杂一点的功能交给C++代码来写.

       最简单的应用就是通过QML中控件的处理程序,比如Button的onClicked:{调用C++代码中的槽函数,形式为   类型名.槽函数名();},

注册属性用Q_PROPERTY,

一般形式为:Q_PROPERTY(type name READ name WRITE setname NOTIFY nameChanged);

如:Q_PROPERTY(QString text READ text WRITE setText NOTIFY textChanged);

  • READ 标记,如果你没有为属性指定 MEMBER 标记,则 READ 标记必不可少;声明一个读取属性的函数,该函数一般没有参数,返回定义的属性。
  • WRITE 标记,可选配置。声明一个设定属性的函数。它指定的函数,只能有一个与属性类型匹配的参数,必须返回 void 。
  • NOTIFY 标记,可选配置。给属性关联一个信号(该信号必须是已经在类中声明过的),当属性的值发生变化时就会触发该信号。信号的参数,一般就是你定义的属性。
注册成员函数用Q_INVOK ABLE

一般形式为:Q_INVOKABLE returnType functionName(pragma);

如:Q_INVOKABLE void setAlgorithm(GenerateAlgorithm algorithm);


注册枚举类型用Q_ENUMS

一般形式为:Q_ENUMS(EnumName);

例:Q_ENUMS(GenerateAlgorithm);


注册QML类型

在main.cpp中头部加

#include <QtQml>

在创建Engine之前加

qmlRegisterType<类名>("包名", 1, 0, "类名");

如:qmlRegisterType<ColorMaker>("an.qt.ColorMaker", 1, 0, "ColorMaker");

使用注册的QML类型

在要用到此类型的qml文件头部加

#include 包名 1.0

如: #include an.qt.ColorMaker 1.0

就可以像用一般Qml类型一样使用了

如:

ColorMaker{

       id:colorMaker

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值