|
|
#include "pythonconsole.h"
|
|
|
#include <QPushButton>
|
|
|
#include <QFile>
|
|
|
#include <QTextStream>
|
|
|
#include <QCustomPlot/qcustomplot.h>
|
|
|
|
|
|
#include <PythonQt.h>
|
|
|
#include <qlop.h>
|
|
|
//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);
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|