qml 怎么获取对网页发送get请求后返回的二进制文件并显示为图片,注意不能用FileReader
时间: 2024-04-21 10:27:26 浏览: 7
在 QML 中,你可以使用 XMLHttpRequest 对象来发送 GET 请求,然后使用 Image 组件来显示二进制文件。以下是一个示例代码:
```qml
import QtQuick 2.0
import QtQuick.Controls 2.0
Item {
width: 400
height: 400
property var imageUrl: "https://example.com/image.jpg" // 替换为实际的图片 URL
Image {
id: image
anchors.fill: parent
}
function loadBinary(url) {
var xhr = new XMLHttpRequest();
xhr.open("GET", url);
xhr.responseType = "arraybuffer";
xhr.onreadystatechange = function() {
if (xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) {
var blob = new Blob([xhr.response], { type: "image/jpeg" }); // 替换为实际的 MIME 类型
var url = URL.createObjectURL(blob);
image.source = url;
}
}
xhr.send();
}
Component.onCompleted: {
loadBinary(imageUrl);
}
}
```
在该示例中,我们使用了 XMLHttpRequest 对象来发送 GET 请求,并将其响应类型设置为 arraybuffer,以便在响应完成后获取二进制文件。然后,我们使用 Blob 对象将二进制文件转换为 Blob 对象,并使用 URL.createObjectURL 方法将其转换为 URL,然后将 URL 分配给 Image 组件的 source 属性来显示图片。