PythonScript::PythonScript(PythonScripting *env, const QString &code, QObject *context, const QString &name) : Script(env, code, context, name) { PyCode = NULL; localDict = PyDict_New(); setQObject(Context, "self"); }
void PythonScript::setContext(QObject *context) { Script::setContext(context); setQObject(context, "self"); }
PythonScripting::PythonScripting(ApplicationWindow *parent) : ScriptingEnv(parent, langName) { PyObject *mainmod=NULL, *qtimod=NULL, *sysmod=NULL; math = NULL; sys = NULL; if (Py_IsInitialized()) { PyEval_AcquireLock(); mainmod = PyImport_ImportModule("__main__"); if (!mainmod) { PyErr_Print(); PyEval_ReleaseLock(); return; } globals = PyModule_GetDict(mainmod); Py_DECREF(mainmod); } else { PyEval_InitThreads (); Py_Initialize (); if (!Py_IsInitialized ()) return; initqti(); mainmod = PyImport_AddModule("__main__"); if (!mainmod) { PyEval_ReleaseLock(); PyErr_Print(); return; } globals = PyModule_GetDict(mainmod); } if (!globals) { PyErr_Print(); PyEval_ReleaseLock(); return; } Py_INCREF(globals); math = PyDict_New(); if (!math) PyErr_Print(); qtimod = PyImport_ImportModule("qti"); if (qtimod) { PyDict_SetItemString(globals, "qti", qtimod); PyObject *qtiDict = PyModule_GetDict(qtimod); setQObject(Parent, "app", qtiDict); PyDict_SetItemString(qtiDict, "mathFunctions", math); Py_DECREF(qtimod); } else PyErr_Print(); sysmod = PyImport_ImportModule("sys"); if (sysmod) { sys = PyModule_GetDict(sysmod); Py_INCREF(sys); } else PyErr_Print(); PyEval_ReleaseLock(); #ifdef Q_WS_WIN loadInitFile(QDir::homeDirPath()+"qtiplotrc") || loadInitFile(qApp->applicationDirPath()+"qtiplotrc") || #else loadInitFile(QDir::homeDirPath()+"/.qtiplotrc") || loadInitFile(QDir::rootDirPath()+"etc/qtiplotrc") || #endif loadInitFile("qtiplotrc"); initialized=true; }