。
一、在QML中使用CPP中的信号
CppObject.cpp中声明信号
signals: //信号可以在QML中访问
void cppSignalA(); //一个无参信号
void cppSignalB(const QString &str,int value);//一个带参数信号
void nameChanged(const QString name);
void yearChanged(int year);
CppObject.h中定义信号
void CppObject::setName(const QString &name)
{
qDebug()<<"CppObject::setName"<<name;
if(myName!=name){
qDebug()<<"emit nameChanged";
myName=name;
emit nameChanged(name);
}
}
main.qml中添加注册的模块
import MyCppObject 1.0 //引入我们注册的模块
cpp_obj.name="gongjianbo" // 修改属性会触发set函数,获取值会触发get函数
CppObject{
id:cpp_obj //也可以像原生QML对象一样操作,增加属性之类的
property int counts: 0
onnameChanged: {
counts++
console.log('qml onYearChanged',counts)
}
}
。
二 、在QML中使用CPP中的信号
。
。
。
。
。
。
。
。