En esta página

QAxScript Class

La clase QAxScript proporciona una envoltura alrededor del código script. Más...

Cabecera: #include <QAxScript>
CMake: find_package(Qt6 REQUIRED COMPONENTS AxContainer)
target_link_libraries(mytarget PRIVATE Qt6::AxContainer)
qmake: QT += axcontainer
Hereda: QObject

Tipos Públicos

enum FunctionFlags { FunctionNames, FunctionSignatures }

Funciones Públicas

QAxScript(const QString &name, QAxScriptManager *manager)
virtual ~QAxScript() override
QVariant call(const QString &function, const QVariant &var1 = QVariant(), const QVariant &var2 = QVariant(), const QVariant &var3 = QVariant(), const QVariant &var4 = QVariant(), const QVariant &var5 = QVariant(), const QVariant &var6 = QVariant(), const QVariant &var7 = QVariant(), const QVariant &var8 = QVariant())
QVariant call(const QString &function, QList<QVariant> &arguments)
QStringList functions(QAxScript::FunctionFlags flags = FunctionNames) const
bool load(const QString &code, const QString &language = QString())
QString scriptCode() const
QAxScriptEngine *scriptEngine() const
QString scriptName() const

Señales

void entered()
void error(int code, const QString &description, int sourcePosition, const QString &sourceText)
void finished()
void finished(const QVariant &result)
void finished(int code, const QString &source, const QString &description, const QString &help)
void stateChanged(int state)

Descripción detallada

Cada instancia de la clase QAxScript representa una pieza de código de secuencias de comandos en un lenguaje de secuencias de comandos en particular. El código se carga en el motor de scripts mediante load(). Las funciones declaradas en el código pueden invocarse mediante call().

El script proporciona scriptEngine() proporciona retroalimentación a la aplicación a través de señales. La señal más importante es la señal error(). El acceso directo a QAxScriptEngine se proporciona a través de la función scriptEngine().

Advertencia: Esta clase no está disponible con el compilador bcc5.5.

Ver también QAxScriptEngine, QAxScriptManager, QAxBase, y ActiveQt Framework.

Documentación de tipos de miembros

enum QAxScript::FunctionFlags

Este enum FunctionFlags describe el formato para la introspección de funciones.

ConstanteValorDescripción
QAxScript::FunctionNames0Sólo se devuelven los nombres de las funciones.
QAxScript::FunctionSignatures1Devuelve las funciones con firmas.

Documentación de funciones miembro

QAxScript::QAxScript(const QString &name, QAxScriptManager *manager)

Construye un objeto QAxScript llamado name y lo registra con la clase QAxScriptManager manager . Esto lo hace normalmente la clase QAxScriptManager cuando loading a script.

Un script siempre debe tener un nombre. Es necesario un gestor para permitir que el código del script haga referencia a objetos de la aplicación. El manager toma posesión del objeto.

[override virtual noexcept] QAxScript::~QAxScript()

Destruye el objeto, liberando todos los recursos asignados.

QVariant QAxScript::call(const QString &function, const QVariant &var1 = QVariant(), const QVariant &var2 = QVariant(), const QVariant &var3 = QVariant(), const QVariant &var4 = QVariant(), const QVariant &var5 = QVariant(), const QVariant &var6 = QVariant(), const QVariant &var7 = QVariant(), const QVariant &var8 = QVariant())

Llama a function, pasando los parámetros var1, var1, var2, var3, var4, var5, var6, var7 y var8 como argumentos y devuelve el valor devuelto por la función, o un QVariant inválido si la función no devuelve un valor o cuando la llamada a la función falló.

Consulte QAxScriptManager::call() para obtener más información sobre cómo llamar a funciones de script.

QVariant QAxScript::call(const QString &function, QList<QVariant> &arguments)

Llama a function pasando arguments como parámetros, y devuelve el resultado. Devuelve cuando la ejecución del script ha finalizado.

Véase QAxScriptManager::call() para más información sobre cómo llamar a funciones de script.

Esta es una función sobrecargada.

[signal] void QAxScript::entered()

Esta señal se emite cuando un motor de script ha comenzado a ejecutar código.

[signal] void QAxScript::error(int code, const QString &description, int sourcePosition, const QString &sourceText)

Esta señal se emite cuando se produce un error de ejecución durante la ejecución de un script.

code, description, sourcePosition y sourceText contienen información sobre el error de ejecución.

[signal] void QAxScript::finished()

Esta señal se emite cuando un motor de script ha terminado de ejecutar código.

Nota: Esta señal está sobrecargada. Para conectarse a esta señal:

// Connect using qOverload:
connect(axScript, qOverload<>(&QAxScript::finished),
        receiver, &ReceiverClass::slot);

// Or using a lambda:
connect(axScript, qOverload<>(&QAxScript::finished),
        this, []() { /* handle finished */ });
Para más ejemplos y enfoques, consulte la conexión a señales sobrecargadas.

[signal] void QAxScript::finished(const QVariant &result)

result contiene el resultado del script. Este será un QVariant inválido si el script no tiene valor de retorno.

Nota: Esta señal está sobrecargada. Para conectarse a esta señal:

// Connect using qOverload:
connect(axScript, qOverload(&QAxScript::finished),
        receiver, &ReceiverClass::slot);

// Or using a lambda:
connect(axScript, qOverload(&QAxScript::finished),
        this, [](const QVariant &result) { /* handle finished */ });
Para más ejemplos y enfoques, vea conectarse a señales sobrecargadas.

[signal] void QAxScript::finished(int code, const QString &source, const QString &description, const QString &help)

code, source, description y help contienen información de excepción cuando el script termina.

Nota: Esta señal está sobrecargada. Para conectarse a esta señal:

// Connect using qOverload:
connect(axScript, qOverload(&QAxScript::finished),
        receiver, &ReceiverClass::slot);

// Or using a lambda:
connect(axScript, qOverload(&QAxScript::finished),
        this, [](int code, const QString &source, const QString &description, const QString &help) { /* handle finished */ });
Para más ejemplos y enfoques, véase conectarse a señales sobrecargadas.

QStringList QAxScript::functions(QAxScript::FunctionFlags flags = FunctionNames) const

Devuelve una lista de todas las funciones de este script si el motor de script correspondiente admite la introspección; en caso contrario, devuelve una lista vacía. Las funciones se proporcionan con prototipos completos o sólo como nombres, dependiendo del valor de flags.

Véase también QAxScriptEngine::hasIntrospection().

bool QAxScript::load(const QString &code, const QString &language = QString())

Carga la fuente del script code escrito en el lenguaje language en el motor de script. Devuelve true si code fue introducido con éxito en el motor de scripts; en caso contrario devuelve false.

Si language está vacío (por defecto) se determinará heurísticamente. Si code contiene la cadena End Sub se interpretará como VBScript, en caso contrario como JScript. Se pueden registrar lenguajes de script adicionales utilizando QAxScriptManager::registerEngine().

Esta función sólo puede llamarse una vez por cada objeto QAxScript, lo que se hace automáticamente al utilizar QAxScriptManager::load().

QString QAxScript::scriptCode() const

Devuelve el código del script, o la cadena nula si aún no se ha cargado ningún código.

Véase también load().

QAxScriptEngine *QAxScript::scriptEngine() const

Devuelve un puntero al motor de scripts.

Puede utilizar el objeto devuelto para conectar señales a las funciones de script, o para acceder directamente al motor de script.

QString QAxScript::scriptName() const

Devuelve el nombre del script.

[signal] void QAxScript::stateChanged(int state)

Esta señal se emite cuando un motor de script cambia de estado. state puede ser cualquier valor de la enumeración QAxScriptEngine::State.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.