Avogadro::QtGui::PythonScript#

class PythonScript : public QObject#

The PythonScript class implements a interface for calling short-lived python utility scripts.

Unnamed Group

explicit PythonScript(const QString &scriptFilePath_, QObject *parent_ = nullptr)#

Constructors

Parameters:

scriptFilePath_ – Absolute path to python script.

explicit PythonScript(QObject *parent_ = nullptr)#

Constructors

Parameters:

scriptFilePath_ – Absolute path to python script.

Public Functions

~PythonScript() override#
inline bool debug() const#
Returns:

True if debugging of python I/O is enabled.

inline QString scriptFilePath() const#
Returns:

The path to the generator file.

void setScriptFilePath(const QString &scriptFile)#

Set the path to the input generator script file. This will reset any cached data held by this class.

inline bool hasErrors() const#
Returns:

True if an error is set.

inline void clearErrors()#

Reset the error counter.

inline QStringList errorList() const#
Returns:

A QStringList containing all errors that occurred in the last call to the input generator script.

void setDefaultPythonInterpreter()#

Reset the python interpretor path. The following are checked, in order:

  • The AVO_PYTHON_INTERPRETER environment variable

  • The “interpreters/python” QSettings value

  • The path specified in avogadropython.h.

QByteArray execute(const QStringList &args, const QByteArray &scriptStdin = QByteArray())#

Start a new process to execute: “<m_pythonInterpreter> <scriptFilePath()> [args …]”, optionally passing scriptStdin to the processes standard input. Returns the standard output of the process when finished.

void asyncExecute(const QStringList &args, const QByteArray &scriptStdin = QByteArray())#

Start a new process to execute asynchronously “<m_pythonInterpreter> <scriptFilePath()> [args …]”, optionally passing scriptStdin to the processes standard input.

Will send asyncFinished() signal when finished

QByteArray asyncWriteAndResponse(QByteArray input)#

Write input to the asynchronous process’ standard input and return the standard output when ready. Does not wait for the process to terminate before returning (e.g. “server mode”).

Parameters:

input – The input to write to the process’ standard input

Returns:

The standard output of the process

void asyncTerminate()#

Terminate the asynchronous process.

QByteArray asyncResponse()#

Returns the standard output of the asynchronous process when finished.

Public Slots

inline void setDebug(bool d)#

Enable/disable debugging.

void processFinished(int exitCode, QProcess::ExitStatus exitStatus)#

Handle a finished process;

Signals

void finished()#

The asynchronous execution is finished or timed out

Protected Attributes

bool m_debug#
QString m_pythonInterpreter#
QString m_scriptFilePath#
QStringList m_errors#
QProcess *m_process#