Sur cette page

QAxScriptManager Class

La classe QAxScriptManager constitue un pont entre les objets de l'application et le code de script. Plus d'informations...

En-tête : #include <QAxScriptManager>
CMake : find_package(Qt6 REQUIRED COMPONENTS AxContainer)
target_link_libraries(mytarget PRIVATE Qt6::AxContainer)
qmake : QT += axcontainer
Héritages : 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 gestionnaire QAxScript fait office de Bridge entre les objets COM intégrés dans 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 et ajoutez les objets COM auxquels les scripts doivent accéder en utilisant addObject(). Puis load() les sources des scripts et invoquez les fonctions à l'aide de call().

Attention : Cette classe n'est pas disponible avec le compilateur bcc5.5.

Voir également QAxScript, QAxScriptEngine, QAxBase, et ActiveQt Framework.

Documentation des fonctions membres

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

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

Il est habituel de créer un QAxScriptManager pour chaque document d'une application.

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

Détruit les objets, en libérant toutes les ressources allouées.

void QAxScriptManager::addObject(QAxBase *object)

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

Vous devez ajouter tous les objets nécessaires avant de charger des scripts.

void QAxScriptManager::addObject(QObject *object)

Ajoute au gestionnaire une enveloppe COM générique pour object. object doit être exposé en tant qu'objet COM en utilisant la fonctionnalité fournie 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 passant les paramètres var1, var1, var2, var3, var4, var5, var6, var7 et var8 comme arguments et renvoie la valeur renvoyé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 est renvoyé 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;
}

utiliser

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

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

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

Toutefois, 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 en utilisant QAxScript::call() sur l'objet script correspondant.

Notez que l'appel de cette fonction peut être significativement plus lent que l'utilisation directe de call() sur l'objet QAxScript.

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

Appelle function en passant arguments en paramètre, et renvoie le résultat. Retourne le résultat lorsque l'exécution du script est terminée.

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 messages suivants, description, sourcePosition et sourceText contiennent des informations sur l'erreur d'exécution.

Attention : Ne supprimez pas script dans un slot connecté à ce signal. Utilisez plutôt deleteLater().

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

Renvoie une liste de 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 la liste. Les fonctions sont fournies soit avec des prototypes complets, soit uniquement sous forme de noms, en fonction de la valeur de flags.

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

Charge la source du script code en utilisant le moteur de script pour language. Le script peut être référencé ultérieurement en utilisant son name qui ne doit pas être vide.

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

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

Vous devez ajouter tous les objets nécessaires (en utilisant addObject()) avant de charger des scripts. Si code déclare une fonction qui est déjà disponible (quel que soit le langage), la première fonction est surchargée et ne peut plus être appelée via call() ; mais elle sera toujours disponible 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 être référencé ultérieurement à l'aide de son name, qui ne doit pas être vide.

La fonction renvoie un pointeur sur le moteur de script pour le code contenu dans file si file a été chargé avec succès ; sinon, elle renvoie 0.

Le moteur de script utilisé est déterminé par 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. Des moteurs de script supplémentaires peuvent être enregistrés à l'aide de 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 appelé name et renvoie true si le moteur a été trouvé ; sinon, ne fait rien et renvoie false.

Le moteur de script sera utilisé lors du chargement de fichiers portant le nom extension, ou lors du chargement de code source contenant la chaîne code.

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

Renvoie le script appelé name.

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

[static] QString QAxScriptManager::scriptFileFilter()

Renvoie un filtre de fichier listant tous les langages de script pris en charge. Cette chaîne de filtrage 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.