Repository navigation
Expand file tree
/
Copy pathpythoninterpreterwidget.cpp
More file actions
68 lines (56 loc) · 2.27 KB
/
Copy pathpythoninterpreterwidget.cpp
File metadata and controls
68 lines (56 loc) · 2.27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include "pythoninterpreterwidget.h"
#include <QFontDatabase>
#include <QDebug>
PythonInterpreterWidget::PythonInterpreterWidget(QWidget *parent)
: QWidget(parent)
{
mainLayout = new QVBoxLayout(this);
splitter = new QSplitter(Qt::Vertical, this);
scriptInputEdit = new QPlainTextEdit(this);
scriptInputEdit->setPlaceholderText(tr("Escribe tu script de Python aquí..."));
scriptInputEdit->setFont(QFontDatabase::systemFont(QFontDatabase::FixedFont));
scriptInputEdit->setLineWrapMode(QPlainTextEdit::NoWrap);
outputConsole = new QPlainTextEdit(this);
outputConsole->setReadOnly(true);
outputConsole->setPlaceholderText(tr("La salida del script aparecerá aquí..."));
outputConsole->setFont(QFontDatabase::systemFont(QFontDatabase::FixedFont));
outputConsole->setLineWrapMode(QPlainTextEdit::NoWrap);
splitter->addWidget(scriptInputEdit);
splitter->addWidget(outputConsole);
splitter->setStretchFactor(0, 3);
splitter->setStretchFactor(1, 1);
runScriptButton = new QPushButton(tr("Ejecutar Script"), this);
mainLayout->addWidget(splitter);
mainLayout->addWidget(runScriptButton);
setLayout(mainLayout);
connect(runScriptButton, &QPushButton::clicked, this, &PythonInterpreterWidget::onRunScriptClicked);
}
PythonInterpreterWidget::~PythonInterpreterWidget()
{
}
// Slot del botón "Ejecutar Script"
void PythonInterpreterWidget::onRunScriptClicked()
{
QString scriptContent = scriptInputEdit->toPlainText();
if (scriptContent.isEmpty()) {
// Opcional: mostrar mensaje en la consola de salida directamente
// appendOutputText(tr("==> No hay script para ejecutar."));
return;
}
clearOutputConsole(); // Limpiar consola antes de una nueva "ejecución"
emit scriptExecutionRequested(scriptContent); // Emitir la señal con el script
}
// Implementación de los nuevos slots públicos
void PythonInterpreterWidget::appendOutputText(const QString& text)
{
outputConsole->appendPlainText(text);
}
void PythonInterpreterWidget::setOutputText(const QString& text)
{
qDebug() << "PythonInterpreterWidget::appendOutputText llamado con:" << text; // <--- AÑADE ESTO
outputConsole->setPlainText(text);
}
void PythonInterpreterWidget::clearOutputConsole()
{
outputConsole->clear();
}