Я переношу код 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.