我有一个QML Image对象,其源指向我控制的https服务器,该服务器具有自签名CA证书.
是否存在某种全局SSL配置,我可以信任我的自签名证书?我知道在C++中通过Qt执行请求时可以设置SslConfiguration,但如果我通过QML(隐式)发出请求,我该怎么做呢?
我正在尝试将QImage传递给QML.有人能帮助我吗?代码如下.
问题是我为图像提供程序提供图像的所有尝试都失败了.我尝试在类中使用Q_PROPERTY和QImage成员,但是当我尝试访问它时,我的提供程序总是返回一个空图像.
如何为提供商提供QImage?
QML
Camera {
id: camera
captureMode: Camera.CaptureStillImage
imageCapture {
onImageCaptured: {
manipulaImagem.imagem = preview;
previewImage.source = manipulaImagem.recortarFotoPerfil(preview, viewfinder.mapRectToSource(Qt.rect(viewfinder.x, viewfinder.y, viewfinder.width, viewfinder.height)));
}
}
}
Image {
id: previewImage
fillMode: Image.PreserveAspectFit
anchors.top: parent.top
width: parent.width
height: parent.width
}
Run Code Online (Sandbox Code Playgroud)
CPP
QImage manipulaImagem::recortarFotoPerfil(const QString &imagem, QRect rectRecorte)
{
QUrl caminhoImagem(imagem);
QQmlEngine *engine = QQmlEngine::contextForObject(this)->engine();
QQmlImageProviderBase *imageProviderBase = engine->imageProvider(caminhoImagem.host());
QQuickImageProvider *imageProvider = static_cast<QQuickImageProvider*>(imageProviderBase);
QSize imageSize;
QString imageId = caminhoImagem.path().remove(0, 1);
QImage imagem1 = imageProvider->requestImage(imageId, &imageSize, imageSize);
imagem1 = imageProvider->requestImage(imageId, &imageSize, imageSize); …Run Code Online (Sandbox Code Playgroud) 我的应用程序通过网络(每秒16帧)接收JPEG的实时流.应使用QML显示实时流.接收部分用C++编写,所有UI都是用QML编写的.
如何将图像数据导入QML窗口?我已经了解了如何显示QImage,但我还没有找到解决方案.
实现QDeclarativeImageProvider并使用不同的名称一遍又一遍地刷新图像源似乎是唯一的解决方案,请参阅http://qt-project.org/doc/qt-4.8/qdeclarativeimageprovider.html.