#pragma once #include #include #include #include class PythonRunner : public QObject { Q_OBJECT public: PythonRunner(QTextEdit* outputWidget, QObject* parent = nullptr); ~PythonRunner(); bool runScript(const QString& scriptContent); void stopScript(); private slots: void onOutputAvailable(); void onErrorAvailable(); void onProcessFinished(int exitCode, QProcess::ExitStatus exitStatus); signals: void scriptFinished(int code); private: QTextEdit* m_outputWidget; QProcess* m_process; bool ready; QTemporaryDir dir; };