QT WebEngine& JavaScript无法加载.PNG图像

时间:2017-05-09 06:25:05

标签: javascript qt qml qt5.5

我的工作环境: Qt 5.8 MSVC2015 64位,Windows 7 64位,Web引擎,JavaScript。

在QT代码中,我正在加载图像,将数据转换为QByteArray&转回JavaScript。所以javaScript可以渲染图像。 但JavaScript无法加载.png图片,任何线索我在这里缺少什么?

QT .h文件代码:

Q_INVOKABLE QByteArray GetTile();

QT .cpp文件代码:

QByteArray ExportedObject::GetTile()
{
QByteArray arr;
QFile imageFile("D:\\2.png");
arr = imageFile.readAll();
imageFile.close();
return arr;
}

JavaScript代码:

var myRetValue;  
myRetValue = window.interface.GetTile(function(returnValue) {
        return returnValue;
    });
alert (myRetValue);
document.getElementById("ItemPreview").src = "data:image/png;base64," + returnValue;

为什么returnValue没有存储在myRetValue中?

1 个答案:

答案 0 :(得分:0)

@derM:非常感谢投入。修复是将QByteArray转换为Base64。

return arr.toBase64();

如果没有Base64,我只接收NULL(/ r / n)终止字符串。