2017-05-09 78 views
0

我的工作環境:Qt 5.8 MSVC2015 64位,Windows 7 64位,Web引擎,JavaScript。QT WebEngine&JavaScript無法加載.PNG圖像

在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?

+0

任何錯誤信息? – derM

+0

我必須承認,我對WebEngine並不瞭解,但是我覺得有趣的是你在'C++'中定義了一個沒有參數的函數,然後你傳遞一個JS函數給它。 – derM

+0

當我將圖像緩衝區分配給document.getElementById(「ItemPreview」)。src時,它不會加載任何圖像。 – Sandy

回答

0

@derM:非常感謝您的意見。修正是將QByteArray轉換爲Base64。

return arr.toBase64(); 

沒有Base64,我只接收NULL(/ r/n)終止的字符串。