#include "pythonconsole.h" #include #include #include #include #include #include //void PythonQt_init_PySocExplorer(PyObject* module); //void PythonQt_init_PySocExplorerEngine(PyObject* module) ; void PythonQt_init_PyQLop(PyObject* module); PythonConsole::PythonConsole(QWidget *parent) : QWidget(parent) { //PythonQt::init(); PythonQt::init(PythonQt::RedirectStdOut); PythonQt_QtAll::init(); this->mainlayout = new QHBoxLayout; this->mainContext = new PythonQtObjectPtr(PythonQt::self()->getMainModule()); this->mainContext->addVariable(QString("PYMODULES"),QVariant(QString(PYMODULES))); this->console = new PythonQtScriptingConsoleDandD(NULL, PythonQt::self()->getMainModule()); this->mainlayout->addWidget(this->console); this->setWindowTitle(tr("Python Scripting Console")); this->setAcceptDrops(true); this->setLayout(this->mainlayout); connect(this->console,SIGNAL(pyConsoleRunFiles(QStringList)),this,SLOT(pyConsoleRunFiles(QStringList))); // PythonQt_init_PySocExplorer(0); // PythonQt_init_PySocExplorerEngine(0); PythonQt_init_PyQLop(0); this->mainContext->evalScript(QString("from PythonQt import *")); } void PythonConsole::addObject(const QString& name, QObject* object) { this->mainContext->addObject(name, object); } void PythonConsole::removeVariable(const QString& name) { this->mainContext->removeVariable(name); } void PythonConsole::registerObject(QObject* object,const QString& instanceName) { this->mainContext->addObject(instanceName,object); } void PythonConsole::pyConsoleRunFiles(const QStringList & pathList) { for (int i = 0; i < pathList.size() && i < 32; ++i) { this->pyConsoleRunFile(pathList.at(i)); } } void PythonConsole::pyConsoleRunFile(const QString& fileName) { QString code; QFile file; QFileInfo fileinfo; code.clear(); file.setFileName(fileName); fileinfo.setFile(fileName); if(!fileinfo.suffix().compare("py")) { QString CMD="execfile(\'"+fileName+"\')"; this->console->executePythonCommand(CMD); } } QSize PythonConsole::sizeHint() { return QSize(800,80); }