一、C++的信号和QML的槽
前言:
Qt中的信号与槽,通常是一个信号SIGNAL和一个槽SLOT,通过connet连接,而QML中不需要再写槽函数,只需要在合适的地方告诉QML:如果x信号产生则执行x
如有信号:
Class A{
signals:voidrcvData(QString str);
};
则在QML里:onRcvData:{
//执行x如console.log(str);
}
格式:在信号前面加on,然后信号首字母大写,注意参数可执行使用
1、如果注册的是C++类,那么可以在QML中实例化对象的时候直接捕获
A{
id:a
onRcvData:{
console.log(str)
}
}
2、如果注册的是C++对象,则需要Connections连接
Connections {
target: a
onRcvData: {
console.log(str)
}
}
二、QML的信号和QML的槽
sendSignal.connect(target.recvSlot)
直接使用connect连接,在合适的地方如Component.onCompleted里连接信号与槽,sendSignal当前对象是定义的信号,recvSlot实际上是一