2017-05-09 7 views
0

Meine Arbeit Umgebung: Qt 5.8 MSVC2015 64 Bit, Windows 7 64 Bit, Web-Modul, JavaScript.QT WebEngine & JavaScript konnte nicht geladen werden .PNG image

In QT-Code laden ich Bild, Konvertieren von Daten in QByteArray & Übertragung zurück zu JavaScript. So kann javaScript das Bild rendern. Aber Javascript konnte geladen werden .png Bilder, jede Ahnung, was ich hier fehlt?

QT .h-Datei Code:

Q_INVOKABLE QByteArray GetTile(); 

QT CPP-Datei Code:

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

JavaScript-Code:

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

Warum nicht in return myRetValue gespeichert werden?

+0

Eine Fehlermeldung? – derM

+0

Ich muss zugeben, ich weiß nicht viel über die WebEngine, aber ich finde es interessant, dass Sie in 'C++' eine Funktion ohne Parameter definieren und dann eine JS-Funktion übergeben. – derM

+0

Wenn ich document.getElementById ("ItemPreview"). Src Bildpuffer zuweisen, wird kein Bild geladen. – Sandy

Antwort

0

@derM: Vielen Dank für Eingaben. Fix ist konvertieren QByteArray zu Base64.

return arr.toBase64(); 

Ohne Base64 erhalte ich nur NULL (/ r/n) terminierte Zeichenfolge.

Verwandte Themen