QML图像:SSL握手失败

Eve*_*sle 9 ssl qt qml

我有一个QML Image对象,其源指向我控制的https服务器,该服务器具有自签名CA证书.

是否存在某种全局SSL配置,我可以信任我的自签名证书?我知道在C++中通过Qt执行请求时可以设置SslConfiguration,但如果我通过QML(隐式)发出请求,我该怎么做呢?

mik*_*10a 0

您可以使用 C++ 为 SSL 连接创建一个包装类,然后只需将包装类的元类型添加到 QML 引擎即可

qmlRegisterMetaType<SSLWrapper>("com.your.app", 1, 0, "SSLWrapper"); 来自 C++

import com.your.app 1.0 来自 qml

这将允许您使用以下命令创建 C++ 类的实例:

SSLWrapper { id: my_wrapper }

然后使用以 Q_INVOKABLE 为前缀的本机 C++ 方法从远程服务器获取图像,以便从 QML 访问它,然后将其转换为字节并通过信号/槽设置发送以传递字节,然后设置您想要导入的图像 URL,以使用从 SSLWrapper 信号获取的图像数据字符串

另请查看 Qt/QML :将 QImage 从 C++ 发送到 QML 并在 GUI 上显示 QImage