QAxScript Class
La classe QAxScript fournit une enveloppe autour du code de script. Plus d'informations...
| En-tête : | #include <QAxScript> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS AxContainer)target_link_libraries(mytarget PRIVATE Qt6::AxContainer) |
| qmake : | QT += axcontainer |
| Héritages : | 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 morceau de code de script dans un langage de script particulier. Le code est chargé dans le moteur de script à l'aide de load(). Les fonctions déclarées dans le code peuvent être appelées à l'aide de call().
Le script fournit scriptEngine() un retour d'information à l'application par le biais de signaux. Le signal le plus important est le signal error(). L'accès direct à QAxScriptEngine est fourni par la fonction scriptEngine().
Attention : Cette classe n'est pas disponible avec le compilateur bcc5.5.
Voir également QAxScriptEngine, QAxScriptManager, QAxBase, et ActiveQt Framework.
Documentation sur les types de membres
enum QAxScript::FunctionFlags
Cette liste FunctionFlags décrit le formatage de l'introspection des fonctions.
| Constante | Valeur | Description |
|---|---|---|
QAxScript::FunctionNames | 0 | Seuls les noms de fonctions sont renvoyés. |
QAxScript::FunctionSignatures | 1 | Retourne les fonctions avec les signatures. |
Documentation des fonctions membres
QAxScript::QAxScript(const QString &name, QAxScriptManager *manager)
Construit un objet QAxScript appelé name et l'enregistre auprès de QAxScriptManager manager . Cette opération est généralement effectuée par la classe QAxScriptManager lorsque 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 des objets dans l'application. Le gestionnaire manager est propriétaire de l'objet.
[override virtual noexcept] QAxScript::~QAxScript()
Détruit l'objet, en libérant 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 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é.
Voir QAxScriptManager::call() pour plus d'informations sur la manière d'appeler les fonctions de script.
QVariant QAxScript::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.
Voir QAxScriptManager::call() pour plus d'informations sur la manière d'appeler les fonctions de script.
Il s'agit d'une fonction surchargée.
[signal] void QAxScript::entered()
Ce signal est émis lorsqu'un moteur de script a commencé à 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 messages suivants, description, sourcePosition et sourceText contiennent des informations sur l'erreur d'exécution.
[signal] void QAxScript::finished()
Ce signal est émis lorsqu'un moteur de script a fini d'exécuter du code.
Note : Ce signal est surchargé. Pour se 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 */ });[signal] void QAxScript::finished(const QVariant &result)
result contient le résultat du script. Ce sera un QVariant invalide si le script n'a pas de valeur de retour.
Remarque : ce signal est surchargé. Pour se 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 */ });
[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 lorsque le script s'est terminé.
Note : Ce signal est surchargé. Pour se 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 */ });
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, il renvoie une liste vide. Les fonctions sont fournies soit avec des prototypes complets, soit uniquement sous forme de noms, en fonction de la valeur de flags.
Voir aussi QAxScriptEngine::hasIntrospection().
bool QAxScript::load(const QString &code, const QString &language = QString())
Charge la source du script code écrit dans le langage language dans le moteur de script. Retourne vrai si code a été entré avec succès dans le moteur de script ; sinon, retourne faux.
Si language est vide (par défaut), 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. 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 est fait automatiquement lors de l'utilisation de QAxScriptManager::load().
QString QAxScript::scriptCode() const
Renvoie le code du script, ou la chaîne nulle si aucun code n'a encore été chargé.
Voir aussi load().
QAxScriptEngine *QAxScript::scriptEngine() const
Renvoie un pointeur sur le moteur de script.
Vous pouvez utiliser l'objet renvoyé pour connecter 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. state peut être 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.