Sur cette page

QAxScriptManager Class

La classe QAxScriptManager sert de passerelle entre les objets d'application et le code de script. En savoir plus...

En-tête : #include <qaxscript.h>
CMake : find_package(Qt6 REQUIRED COMPONENTS AxContainer)
target_link_libraries(mytarget PRIVATE Qt6::AxContainer)
qmake : QT += axcontainer
Hérite de : QObject

Fonctions publiques

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

Signaux

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

Membres publics statiques

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

Description détaillée

Le QAxScriptManager sert de passerelle entre les objets COM intégrés à l'application Qt via QAxObject ou QAxWidget, et les langages de script disponibles via les technologies Windows Script, généralement JScript et VBScript.

Créez un QAxScriptManager pour chaque document distinct de votre application, puis ajoutez les objets COM auxquels les scripts doivent accéder à l'aide de la fonction addObject(). Ensuite, chargez les sources des scripts à l'aide de la fonction load() et appelez les fonctions à l'aide de la fonction call().

Avertissement : cette classe n’est pas disponible avec le compilateur bcc5.5.

Voir également QAxScript, QAxScriptEngine, QAxBase et le framework ActiveQt.

Documentation des fonctions membres

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

Crée un objet QAxScriptManager. L'parent est transmis au constructeur de QObject.

On crée généralement un QAxScriptManager pour chaque document d’une application.

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

Détruit les objets et libère toutes les ressources allouées.

void QAxScriptManager::addObject(QAxBase *object)

Ajoute un objet « object » au gestionnaire. Les scripts gérés par ce gestionnaire peuvent accéder à cet objet dans le code à l'aide de la propriété « objectName » de l'objet.

Vous devez ajouter tous les objets nécessaires avant de charger un script.

void QAxScriptManager::addObject(QObject *object)

Ajoute au gestionnaire un wrapper COM générique pour object. object doit être exposé en tant qu'objet COM à l'aide des fonctionnalités fournies par le module QAxServer. Les applications utilisant cette fonction doivent être liées à la bibliothèque qaxserver.

Il s'agit d'une fonction surchargée.

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())

Appelle function en lui transmettant les paramètres var1, var1, var2, var3, var4, var5, var6, var7 et var8 en tant qu’arguments, et renvoie la valeur retournée par la fonction, ou un QVariant invalide si la fonction ne renvoie pas de valeur ou si l’appel de la fonction a échoué. L’appel se termine lorsque l’exécution du script est terminée.

Dans la plupart des moteurs de script, le seul type de paramètre pris en charge est « const QVariant& » ; par exemple, pour appeler une fonction JavaScript

function setNumber(number)
{
    n = number;
}

, utilisez

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

Comme avec ` dynamicCall `, les paramètres peuvent être directement intégrés dans la chaîne de la fonction.

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

Cependant, cette méthode est plus lente.

Les fonctions fournies par les moteurs de script qui ne prennent pas en charge l’introspection ne sont pas disponibles et doivent être appelées directement à l’aide de ` QAxScript::call()` sur l’objet ` script ` correspondant.

Notez que l’appel de cette fonction peut être nettement plus lent que l’utilisation de `call()` directement sur l’ QAxScript correspondant.

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

Appelle la fonction ` function ` en lui passant ` arguments ` comme paramètres, puis renvoie le résultat. Renvoie la fin de l'exécution du script.

Il s'agit d'une fonction surchargée.

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

Ce signal est émis lorsqu'une erreur d'exécution s'est produite lors de l'exécution de script.

codeLes fonctions ` description`, ` sourcePosition ` et ` sourceText ` contiennent des informations sur l'erreur d'exécution.

Avertissement : ne supprimezpas script dans un slot connecté à ce signal. Utilisez plutôt deleteLater().

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

Renvoie une liste contenant toutes les fonctions disponibles. Les fonctions fournies par les moteurs de script qui ne prennent pas en charge l'introspection ne sont pas incluses dans cette liste. Les fonctions sont fournies soit avec leurs prototypes complets, soit uniquement sous forme de noms, selon la valeur de ` flags`.

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

Charge la source du script code à l'aide du moteur de script de language. Il est ensuite possible d'accéder au script via son name, qui ne doit pas être vide.

La fonction renvoie un pointeur vers le script correspondant à l'code donné si le fichier code a été chargé avec succès ; sinon, elle renvoie 0.

Si language est vide, le type sera déterminé de manière heuristique. Si code contient la chaîne « End Sub », le script sera interprété comme du VBScript, sinon comme du JScript. D'autres moteurs de script peuvent être enregistrés à l'aide de registerEngine().

Vous devez ajouter tous les objets nécessaires (à l’aide de addObject()) avant de charger tout script. Si code déclare une fonction déjà disponible (quel que soit le langage), la première fonction est surchargée et ne peut plus être appelée via call(); elle reste toutefois accessible en appelant directement son script.

Voir également addObject(), scriptNames() et functions().

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

Charge le code source à partir de file. Le script peut ensuite être référencé à l'aide de son name, qui ne doit pas être vide.

La fonction renvoie un pointeur vers le moteur de script correspondant au code situé à l'adresse file si file a été chargé avec succès ; dans le cas contraire, elle renvoie 0.

Le moteur de script utilisé est déterminé à partir de l'extension du fichier. Par défaut, les fichiers « .js » sont interprétés comme des fichiers JScript, et les fichiers « .vbs » et « .dsm » comme des fichiers VBScript. D'autres moteurs de script peuvent être enregistrés à l'aide de la fonction registerEngine().

Il s'agit d'une fonction surchargée.

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

Enregistre le moteur de script nommé « name » et renvoie « true » si le moteur a été trouvé ; sinon, il ne fait rien et renvoie « false ».

Le moteur de script sera utilisé lors du chargement de fichiers portant l'extension indiquée, ou lors du chargement de code source contenant la chaîne code.

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

Renvoie le script nommé « name ».

Vous pouvez utiliser le pointeur renvoyé pour appeler directement des fonctions via QAxScript::call(), pour accéder directement au moteur de script, ou pour supprimer et ainsi décharger le script.

[static] QString QAxScriptManager::scriptFileFilter()

Renvoie un filtre de fichier répertoriant tous les langages de script pris en charge. Cette chaîne de filtre est pratique à utiliser avec QFileDialog.

QStringList QAxScriptManager::scriptNames() const

Renvoie une liste contenant les noms de tous les 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.