【发布时间】:2017-05-09 06:25:05
【问题描述】:
我的工作环境:Qt 5.8 MSVC2015 64bit, Windows 7 64 bit, Web engine, 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 中?
【问题讨论】:
-
任何错误信息?
-
我必须承认,我对 WebEngine 了解不多,但我发现你在
C++中定义了一个不带参数的函数,然后将一个 JS 函数传递给它,这很有趣。 -
当我将图像缓冲区分配给 document.getElementById("ItemPreview").src 时,它不会加载任何图像。
-
@derM: var myRetValue; myRetValue = window.interface.GetTile(function(returnValue) { return returnValue; });警报(myRetValue);为什么 myRetValue 没有得到 returnValue ?
-
@derM:谢谢,在你们 cmets 之后我改变了问题。
标签: javascript qt qml qt5.5