pythonconsole.cpp
89 lines
| 2.3 KiB
| text/x-c
|
CppLexer
r5 | #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); | ||||
} | ||||