QAxScript Class
Die Klasse „QAxScript“ dient als Wrapper für Skriptcode. Mehr...
| Header: | #include <qaxscript.h> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS AxContainer) target_link_libraries(mytarget PRIVATE Qt6::AxContainer) |
| qmake: | QT += axcontainer |
| Erbt von: | QObject |
Öffentliche Typen
| enum | FunctionFlags { FunctionNames, FunctionSignatures } |
Öffentliche Funktionen
| 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 |
Signale
| 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) |
Ausführliche Beschreibung
Jede Instanz der Klasse „QAxScript“ repräsentiert einen Skriptcode in einer bestimmten Skriptsprache. Der Code wird mithilfe von „ load()“ in die Skript-Engine geladen. Im Code deklarierte Funktionen können mithilfe von „ call()“ aufgerufen werden.
Das Skript stellt über die Funktion „ scriptEngine()“ Rückmeldungen an die Anwendung bereit. Das wichtigste Signal ist das Signal „ error()“. Der direkte Zugriff auf die „ QAxScriptEngine “ erfolgt über die Funktion „ scriptEngine()“.
Warnung: Diese Klasse ist mit dem bcc5.5-Compiler nicht verfügbar.
Siehe auch „ QAxScriptEngine“ , „ QAxScriptManager “, „ QAxBase “ und „ActiveQt Framework“.
Dokumentation zu den Mitgliedstypen
enum QAxScript::FunctionFlags
Diese „FunctionFlags“-Enumeration beschreibt die Formatierung für die Funktionsintrospektion.
| Konstante | Wert | Beschreibung |
|---|---|---|
QAxScript::FunctionNames | 0 | Es werden nur Funktionsnamen zurückgegeben. |
QAxScript::FunctionSignatures | 1 | Gibt die Funktionen mit Signaturen zurück. |
Dokumentation zu Mitgliedsfunktionen
QAxScript::QAxScript(const QString &name, QAxScriptManager *manager)
Erstellt ein QAxScript-Objekt namens „ name “ und registriert es beim „ QAxScriptManager “ manager. Dies wird in der Regel von der Klasse „ QAxScriptManager “ bei der Ausführung von „ loading a script “ durchgeführt.
Ein Skript sollte immer einen Namen haben. Ein Manager ist erforderlich, damit der Skriptcode auf Objekte in der Anwendung verweisen kann. Der „ manager “ übernimmt die Verantwortung für das Objekt.
[override virtual noexcept] QAxScript::~QAxScript()
Löscht das Objekt und gibt alle zugewiesenen Ressourcen frei.
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())
Ruft „ function “ auf und übergibt dabei die Parameter „ var1 “, „ var1 “, „ var2 “, „ var3 “, „ var4 “, „ var5 “, „ var6 “, „ var7 “ und „ var8 “ als Argumente. Die Funktion gibt den von der Funktion zurückgegebenen Wert zurück oder einen ungültigen Wert „ QVariant “, falls die Funktion keinen Wert zurückgibt oder der Funktionsaufruf fehlgeschlagen ist.
Weitere Informationen zum Aufruf von Skriptfunktionen finden Sie unter QAxScriptManager::call().
QVariant QAxScript::call(const QString &function, QList<QVariant> &arguments)
Ruft „ function “ auf, wobei „ arguments “ als Parameter übergeben werden, und gibt das Ergebnis zurück. Beendet die Ausführung, sobald das Skript vollständig ausgeführt wurde.
Weitere Informationen zum Aufruf von Skriptfunktionen finden Sie unter „ QAxScriptManager::call()“.
Dies ist eine überladene Funktion.
[signal] void QAxScript::entered()
Dieses Signal wird ausgesendet, wenn eine Skript-Engine mit der Ausführung von Code begonnen hat.
[signal] void QAxScript::error(int code, const QString &description, int sourcePosition, const QString &sourceText)
Dieses Signal wird ausgegeben, wenn beim Ausführen eines Skripts ein Ausführungsfehler aufgetreten ist.
code, description, sourcePosition und sourceText enthalten Informationen zu dem Ausführungsfehler.
[signal] void QAxScript::finished()
Dieses Signal wird ausgelöst, wenn eine Skript-Engine die Ausführung von Code abgeschlossen hat.
Hinweis: Dieses Signal ist überladen. So stellen Sie eine Verbindung zu diesem Signal her:
// 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 enthält das Ergebnis des Skripts. Dies ist ein ungültiger „ QVariant “, wenn das Skript keinen Rückgabewert hat.
Hinweis: Dieses Signal ist überladen. So stellen Sie eine Verbindung zu diesem Signal her:
// 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 und help enthalten Informationen zu Ausnahmen, die beim Abbruch des Skripts aufgetreten sind.
Hinweis: Dieses Signal ist überladen. So stellen Sie eine Verbindung zu diesem Signal her:
// 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
Gibt eine Liste aller Funktionen in diesem Skript zurück, sofern die jeweilige Skript-Engine Introspektion unterstützt; andernfalls wird eine leere Liste zurückgegeben. Die Funktionen werden je nach dem Wert von ` flags` entweder mit vollständigen Prototypen oder nur als Namen bereitgestellt.
Siehe auch ` QAxScriptEngine::hasIntrospection()`.
bool QAxScript::load(const QString &code, const QString &language = QString())
Lädt die Skriptquelle code, die in der Sprache language geschrieben ist, in die Skript-Engine. Gibt „true“ zurück, wenn code erfolgreich in die Skript-Engine geladen wurde; andernfalls wird „false“ zurückgegeben.
Ist language leer (Standardeinstellung), wird die Sprache heuristisch ermittelt. Enthält code die Zeichenfolge End Sub, wird das Skript als VBScript interpretiert, andernfalls als JScript. Weitere Skriptsprachen können mit QAxScriptManager::registerEngine() registriert werden.
Diese Funktion kann für jedes „ QAxScript “-Objekt nur einmal aufgerufen werden; dies geschieht automatisch bei Verwendung von „ QAxScriptManager::load()“.
QString QAxScript::scriptCode() const
Gibt den Code des Skripts zurück oder die Null-Zeichenkette, falls noch kein Code geladen wurde.
Siehe auch „ load()“.
QAxScriptEngine *QAxScript::scriptEngine() const
Gibt einen Zeiger auf die Skript-Engine zurück.
Sie können das zurückgegebene Objekt verwenden, um Signale mit den Skriptfunktionen zu verknüpfen oder direkt auf die Skript-Engine zuzugreifen.
QString QAxScript::scriptName() const
Gibt den Namen des Skripts zurück.
[signal] void QAxScript::stateChanged(int state)
Dieses Signal wird ausgelöst, wenn eine Skript-Engine ihren Zustand ändert. „ state “ kann einen beliebigen Wert aus der Aufzählung „ QAxScriptEngine::State “ annehmen.
© 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.