Sur cette page

QAxScript Class

La classe QAxScript fournit une couche d'encapsulation autour du 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

Types publics

enum FunctionFlags { FunctionNames, FunctionSignatures }

Fonctions publiques

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

Signaux

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)

Description détaillée

Chaque instance de la classe QAxScript représente un fragment de code de script dans un langage de script particulier. Le code est chargé dans le moteur de script à l'aide de la fonction load(). Les fonctions déclarées dans le code peuvent être appelées à l'aide de la fonction call().

Le script fournit des informations à l'application via des signaux grâce à la fonction ` scriptEngine()`. Le signal le plus important est le signal ` error()`. L'accès direct à l'QAxScriptEngine est assuré par la fonction ` scriptEngine()`.

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

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

Documentation sur les types de membres

enum QAxScript::FunctionFlags

Cette énumération FunctionFlags décrit les options de formatage pour l'introspection des fonctions.

ConstanteValeurDescription
QAxScript::FunctionNames0Seuls les noms de fonctions sont renvoyés.
QAxScript::FunctionSignatures1Renvoie les fonctions avec leurs signatures.

Documentation des fonctions membres

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

Crée un objet QAxScript nommé « name » et l'enregistre auprès du gestionnaire de scripts ( QAxScriptManager ) manager. Cette opération est généralement effectuée par la classe « QAxScriptManager » lors de l'appel de la méthode « loading a script ».

Un script doit toujours avoir un nom. Un gestionnaire est nécessaire pour permettre au code du script de référencer les objets de l'application. L'manager prend possession de l'objet.

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

Détruit l'objet et libère toutes les ressources allouées.

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

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 non valide si la fonction ne renvoie pas de valeur ou si l’appel de la fonction a échoué.

Consultez la section QAxScriptManager::call() pour plus d’informations sur la manière d’appeler des fonctions de script.

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

Voir QAxScriptManager::call() pour plus d'informations sur l'appel des fonctions de script.

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

[signal] void QAxScript::entered()

Ce signal est émis lorsqu'un moteur de script commence à exécuter du code.

[signal] void QAxScript::error(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 d'un script.

codeLes fichiers « description », « sourcePosition » et « sourceText » contiennent des informations sur cette erreur d'exécution.

[signal] void QAxScript::finished()

Ce signal est émis lorsqu'un moteur de script a terminé l'exécution du code.

Remarque : ce signal est surchargé. Pour vous connecter à ce signal :

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

// Or using a lambda:
connect(axScript, qOverload<>(&QAxScript::finished),
        this, []() { /* handle finished */ });
Pour plus d'exemples et d'approches, consultez la section « Connexion à des signaux surchargés ».

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

result contient le résultat du script. Il s'agira d'une « QVariant » non valide si le script ne renvoie aucune valeur.

Remarque : ce signal est surchargé. Pour vous connecter à ce signal :

// 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 */ });
Pour plus d'exemples et d'approches, consultez la section « Connexion à des signaux surchargés ».

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

code, source, description et help contiennent des informations sur les exceptions survenues lors de l'arrêt du script.

Remarque : ce signal est surchargé. Pour vous connecter à ce signal :

// 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 */ });
Pour plus d’exemples et d’approches, consultez la section « Connexion à des signaux surchargés ».

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

Renvoie une liste de toutes les fonctions de ce script si le moteur de script concerné prend en charge l'introspection ; sinon, renvoie une liste vide. Les fonctions sont fournies soit avec leurs prototypes complets, soit uniquement sous forme de noms, selon la valeur de ` flags`.

Voir également QAxScriptEngine::hasIntrospection().

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

Charge la source du script code, écrite dans le langage language, dans le moteur de script. Renvoie « true » si code a bien été chargé dans le moteur de script ; sinon, renvoie « false ».

Si language est vide (valeur par défaut), le langage sera déterminé de manière heuristique. Si code contient la chaîne End Sub, le script sera interprété en VBScript, sinon en JScript. D'autres langages de script peuvent être enregistrés à l'aide de QAxScriptManager::registerEngine().

Cette fonction ne peut être appelée qu'une seule fois pour chaque objet ` QAxScript `, ce qui se fait automatiquement lors de l'utilisation de ` QAxScriptManager::load()`.

QString QAxScript::scriptCode() const

Renvoie le code du script, ou la chaîne vide si aucun code n'a encore été chargé.

Voir aussi load().

QAxScriptEngine *QAxScript::scriptEngine() const

Renvoie un pointeur vers le moteur de script.

Vous pouvez utiliser l'objet renvoyé pour associer des signaux aux fonctions de script ou pour accéder directement au moteur de script.

QString QAxScript::scriptName() const

Renvoie le nom du script.

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

Ce signal est émis lorsqu’un moteur de script change d’état. La valeur « state » peut correspondre à n’importe quelle valeur de l’énumération « 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.