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("what ever"); を置くことができます。たとえば、私のアプリケーションでは、QLineEdit と関数 pars::PrintMainLog が評価されます。
QJSEngine でこれを行う方法はありますか? それで、ユーザーが同じ PrintLog("what ever");? 私が見つける唯一の方法はhereであるため、ユーザーは Logger.PrintLog("what ever"); のようなものを配置する必要があります。ここで、Logger は PrintLog スロットを持つ QObject から継承されたクラスです。