提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
Connections可以连接C++中定义的signal
注意以下几点
1.目标为C++类对象指针-->target: scCamPtr。
SCCamera *camera;
2.在C++中有signal定义,并且要小写字母开头。
signals:
void imageChanged(QString imgProcessingResult);
3.Connections中,要加on然后再C++定义的signals首字母改为大写。如下所示:
Connections{
id: cameraConn
target: scCam
onImageChanged: {}
}
4.Connections中连接的信号看为是槽函数,并且可以使用信号传入的变量imgProcessingResult。
onImageChanged: {
__imgProcessingRes = imgProcessingResult//可以使用C++信号传入的变量直接赋值
}
示例如下:
C++:
class SCVISIONSHARED_EXPORT SCCamera : public QThread, public QQuickImageProvider
{
signals:
void imageChanged(QString imgProcessingResult);
}
QML:
Connections{
id: cameraConn
target: scCam
onImageChanged: {
__imgProcessingRes = imgProcessingResult//可以使用C++信号传入的变量直接赋值
if(updateImage){
image.source = ""
image.source = imageSource
}else{
__needRefreshImage = true
}
}
}