ich arbeite gerade Kapitel 22 in der zweite Auflage vom Buch "C++ GUI Programmierung mit Qt4" durch. Dort wird im Beispiel "htmleditor" gezeigt, wie man Funktionen in ein Script auslagern kann um diese dann zur Laufzeit mittels qScriptConnect (ab Qt4.4) aufzurufen.
Dazu wird als Konvention angenommen, dass solch ein Skript ein ECMAScript-Objekt zurück geben muss.
Das Beispiel-Programm funktioniert nicht mehr seit Qt4.6.x, ich habe dazu diesen QTBUG gefunden:
http://bugreports.qt.nokia.com/browse/QTBUG-5757
Ich kann aber aus der Diskussion um anonyme Funktionen dort nicht erkennen, wie ich nun das Script, dass ein ECMAScript-Objekt zurück geben soll, anpassen muss, damit es mit Qt4.6.x verarbeitet werden kann.
Hier ein Beispiel, welches den <anonymous>() Fehler provoziert:
Code: Alles auswählen
var obj = new Object;
obj.name = "TestObjekt";
obj.doSomething = function()
{
// Hier wird irgendwas ausgeführt
};
return obj;Code: Alles auswählen
var obj = new Object;
obj.name = "TestObjekt";
obj.doSomething = (function()
{
// Hier wird irgendwas ausgeführt
});
return obj;