En esta página

QAxScriptManager Class

La clase QAxScriptManager proporciona un puente entre los objetos de la aplicación y el código script. Más...

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

Funciones públicas

QAxScriptManager(QObject *parent = nullptr)
virtual ~QAxScriptManager() override
void addObject(QAxBase *object)
void addObject(QObject *object)
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 = QAxScript::FunctionNames) const
QAxScript *load(const QString &code, const QString &name, const QString &language)
QAxScript *load(const QString &file, const QString &name)
QAxScript *script(const QString &name) const
QStringList scriptNames() const

Señales

void error(QAxScript *script, int code, const QString &description, int sourcePosition, const QString &sourceText)

Miembros públicos estáticos

bool registerEngine(const QString &name, const QString &extension, const QString &code = QString())
QString scriptFileFilter()

Descripción detallada

El QAxScriptManager actúa como puente entre los objetos COM embebidos en la aplicación Qt a través de QAxObject o QAxWidget, y los lenguajes de scripting disponibles a través de las tecnologías Windows Script, normalmente JScript y VBScript.

Crea un QAxScriptManager para cada documento separado de tu aplicación, y añade los objetos COM a los que los scripts necesitan acceder usando addObject(). A continuación, load() las fuentes de los scripts e invoque las funciones utilizando call().

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

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

Documentación de las funciones miembro

[explicit] QAxScriptManager::QAxScriptManager(QObject *parent = nullptr)

Crea un objeto QAxScriptManager. parent se pasa al constructor QObject.

Es habitual crear un QAxScriptManager para cada documento de una aplicación.

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

Destruye los objetos, liberando todos los recursos asignados.

void QAxScriptManager::addObject(QAxBase *object)

Añade object al gestor. Los scripts manejados por este gestor pueden acceder al objeto en el código utilizando la propiedad objectName del objeto.

Debes añadir todos los objetos necesarios antes de cargar cualquier script.

void QAxScriptManager::addObject(QObject *object)

Añade una envoltura COM genérica para object al gestor. object debe exponerse como un objeto COM utilizando la funcionalidad proporcionada por el módulo QAxServer. Las aplicaciones que utilicen esta función deben enlazarse con la biblioteca qaxserver.

Se trata de una función sobrecargada.

QVariant QAxScriptManager::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ó. La llamada retorna cuando la ejecución del script ha finalizado.

En la mayoría de los motores de script el único tipo de parámetro soportado es "const QVariant&", por ejemplo, para llamar a una función JavaScript

function setNumber(number)
{
    n = number;
}

use

QValueList args;
args << 5;
script->call("setNumber(const QVariant&)", args);

Al igual que en dynamicCall, los parámetros pueden incrustarse directamente en la cadena de la función.

script->call("setNumber(5)");

Sin embargo, esto es más lento.

Las funciones proporcionadas por motores de script que no soportan la introspección no están disponibles y deben llamarse directamente utilizando QAxScript::call() en el objeto script respectivo.

Tenga en cuenta que llamar a esta función puede ser significativamente más lento que usar call() en el respectivo QAxScript directamente.

QVariant QAxScriptManager::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.

Se trata de una función sobrecargada.

[signal] void QAxScriptManager::error(QAxScript *script, 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 script.

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

Advertencia: No elimine script en una ranura conectada a esta señal. Utilice deleteLater() en su lugar.

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

Devuelve una lista con todas las funciones disponibles. Las funciones proporcionadas por motores de script que no soportan introspección no se incluyen en la lista. Las funciones se proporcionan con prototipos completos o sólo como nombres, dependiendo del valor de flags.

QAxScript *QAxScriptManager::load(const QString &code, const QString &name, const QString &language)

Carga la fuente del script code utilizando el motor de script para language. Posteriormente, se puede hacer referencia al script utilizando su name, que no debe estar vacío.

La función devuelve un puntero al script para el code dado si el code se cargó con éxito; en caso contrario devuelve 0.

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

Debe añadir todos los objetos necesarios (utilizando addObject()) antes de cargar cualquier script. Si code declara una función que ya está disponible (no importa en qué lenguaje) la primera función se sobrecarga y ya no puede ser llamada a través de call(); pero seguirá estando disponible llamando directamente a su script.

Véase también addObject(), scriptNames() y functions().

QAxScript *QAxScriptManager::load(const QString &file, const QString &name)

Carga el código fuente de file. Posteriormente se puede hacer referencia al script utilizando su name, que no debe estar vacío.

La función devuelve un puntero al motor de scripts para el código en file si file se ha cargado correctamente; en caso contrario, devuelve 0.

El motor de script utilizado se determina a partir de la extensión del archivo. Por defecto, los archivos ".js" se interpretan como archivos JScript, y los archivos ".vbs" y ".dsm" se interpretan como VBScript. Se pueden registrar motores de script adicionales utilizando registerEngine().

Se trata de una función sobrecargada.

[static] bool QAxScriptManager::registerEngine(const QString &name, const QString &extension, const QString &code = QString())

Registra el motor de scripts llamado name y devuelve true si el motor fue encontrado; en caso contrario no hace nada y devuelve false.

El motor de secuencias de comandos se utilizará cuando se carguen archivos con la cadena extension, o cuando se cargue código fuente que contenga la cadena code.

QAxScript *QAxScriptManager::script(const QString &name) const

Devuelve el script llamado name.

Puede utilizar el puntero devuelto para llamar directamente a funciones a través de QAxScript::call(), para acceder directamente al motor de scripts o para eliminar y, por tanto, descargar el script.

[static] QString QAxScriptManager::scriptFileFilter()

Devuelve un filtro de archivo que enumera todos los lenguajes de script compatibles. Esta cadena de filtro es conveniente para su uso con QFileDialog.

QStringList QAxScriptManager::scriptNames() const

Devuelve una lista con los nombres de todos los scripts.

© 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.