Я перевожу код QScriptEngine в QJSEngine.
Теперь у меня есть:
class pars
{
public:
static QScriptValue PrintMainLog(QScriptContext* c, QScriptEngine* e);
};
QScriptValue pars::PrintMainLog(QScriptContext* c, QScriptEngine* e)
{
//some actions
return e->globalObject().property("");
}
...
QScriptEngine engine;
...
engine.globalObject().setProperty("PrintLog",engine.newFunction(pars::PrintMainLog));
Итак, пользователь может поставить PrintLog («что нибудь»); в моем приложении, например, QLineEdit и функция pars :: PrintMainLog будут вычисляться.
Есть ли способ сделать это с QJSEngine? Так, чтобы пользователь поставил тот же PrintLog («что когда-либо»)?
Единственный способ найти Вот, поэтому пользователь должен поместить что-то вроде Logger.PrintLog («что-нибудь»); где Logger — это класс, унаследованный от QObject со слотом PrintLog.
Задача ещё не решена.
Других решений пока нет …