QAxScript Class

Die Klasse QAxScript bietet einen Wrapper für Skriptcode. Mehr...

Kopfzeile: #include <QAxScript>
CMake: find_package(Qt6 REQUIRED COMPONENTS AxContainer)
target_link_libraries(mytarget PRIVATE Qt6::AxContainer)
qmake: QT += axcontainer
Vererbungen: 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)

Detaillierte Beschreibung

Jede Instanz der Klasse QAxScript repräsentiert einen Teil des Skriptcodes in einer bestimmten Skriptsprache. Der Code wird mit load() in die Skript-Engine geladen. Im Code deklarierte Funktionen können mit call() aufgerufen werden.

Das Skript liefert scriptEngine() durch Signale Rückmeldungen an die Anwendung. Das wichtigste Signal ist das Signal error(). Ein direkter Zugriff auf QAxScriptEngine ist über die Funktion scriptEngine() möglich.

Warnung: Diese Klasse ist nicht mit dem bcc5.5-Compiler verfügbar.

Siehe auch QAxScriptEngine, QAxScriptManager, QAxBase, und ActiveQt Framework.

Dokumentation der Mitgliedstypen

enum QAxScript::FunctionFlags

Dieses FunctionFlags-Enum beschreibt die Formatierung für die Funktionsintrospektion.

KonstanteWertBeschreibung
QAxScript::FunctionNames0Es werden nur Funktionsnamen zurückgegeben.
QAxScript::FunctionSignatures1Gibt die Funktionen mit Signaturen zurück.

Dokumentation der Mitgliedsfunktionen

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

Konstruiert ein QAxScript-Objekt namens name und registriert es bei QAxScriptManager manager . Dies wird normalerweise von der Klasse QAxScriptManager erledigt, wenn loading a script.

Ein Skript sollte immer einen Namen haben. Ein Manager ist notwendig, damit der Skriptcode auf Objekte in der Anwendung verweisen kann. Die manager übernimmt das Eigentum an dem Objekt.

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

Zerstört 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 die Parameter var1, var1, var2, var3, var4, var5, var6, var7 und var8 als Argumente und gibt den von der Funktion zurückgegebenen Wert oder ein ungültiges QVariant zurück, wenn die Funktion keinen Wert zurückgibt oder der Funktionsaufruf fehlgeschlagen ist.

Siehe QAxScriptManager::call() für weitere Informationen über den Aufruf von Skriptfunktionen.

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

Dies ist eine überladene Funktion.

Ruft function mit arguments als Parameter auf und gibt das Ergebnis zurück. Gibt zurück, wenn die Ausführung des Skripts beendet ist.

Siehe QAxScriptManager::call() für weitere Informationen über den Aufruf von Skriptfunktionen.

[signal] void QAxScript::entered()

Dieses Signal wird ausgegeben, wenn eine Script-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 bei der Ausführung eines Skripts ein Ausführungsfehler auftritt.

code description, und enthalten Informationen über den Ausführungsfehler. sourcePosition sourceText

[signal] void QAxScript::finished()

Dieses Signal wird ausgegeben, wenn eine Script-Engine die Ausführung von Code beendet hat.

Hinweis: Das Signal finished ist in dieser Klasse überladen. Um eine Verbindung zu diesem Signal mit Hilfe der Funktionszeiger-Syntax herzustellen, bietet Qt einen praktischen Helfer, um den Funktionszeiger zu erhalten, wie in diesem Beispiel gezeigt:

connect(axScript, QOverload<>::of(&QAxScript::finished),
    [=](){ /* ... */ });

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

Dies ist eine überladene Funktion.

result enthält das Ergebnis des Skripts. Dies ist eine ungültige QVariant, wenn das Skript keinen Rückgabewert hat.

Hinweis: Das Signal finished ist in dieser Klasse überladen. Um sich mit diesem Signal zu verbinden, indem man die Funktionszeiger-Syntax verwendet, bietet Qt einen praktischen Helfer, um den Funktionszeiger zu erhalten, wie in diesem Beispiel gezeigt:

connect(axScript, QOverload<const QVariant &>::of(&QAxScript::finished),
    [=](const QVariant &result){ /* ... */ });

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

Dies ist eine überladene Funktion.

code source, und enthalten Ausnahmeinformationen, wenn das Skript beendet wurde. description help

Hinweis: Das Signal finished ist in dieser Klasse überladen. Um sich mit diesem Signal zu verbinden, indem man die Funktionszeiger-Syntax verwendet, bietet Qt einen praktischen Helfer, um den Funktionszeiger zu erhalten, wie in diesem Beispiel gezeigt:

connect(axScript, QOverload<int, const QString &, const QString &, const QString &>::of(&QAxScript::finished),
    [=](int code, const QString &source, const QString &description, const QString &help){ /* ... */ });

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

Gibt eine Liste aller Funktionen in diesem Skript zurück, wenn die jeweilige Skript-Engine Introspektion unterstützt; andernfalls wird eine leere Liste zurückgegeben. Die Funktionen werden entweder mit vollständigen Prototypen oder nur als Namen bereitgestellt, abhängig vom Wert von flags.

Siehe auch QAxScriptEngine::hasIntrospection().

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

Lädt den in der Sprache language geschriebenen Skript-Quelltext code in die Skript-Engine. Gibt true zurück, wenn code erfolgreich in die Skript-Engine eingegeben wurde; andernfalls wird false zurückgegeben.

Wenn language leer ist (die Vorgabe), wird dies heuristisch ermittelt. Wenn code die Zeichenkette End Sub enthält, wird sie 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, was bei Verwendung von QAxScriptManager::load() automatisch geschieht.

QString QAxScript::scriptCode() const

Gibt den Code des Skripts zurück oder die Null-Zeichenfolge, wenn 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 verbinden oder um 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 ausgegeben, wenn eine Script-Engine ihren Zustand ändert. state kann ein beliebiger Wert aus der Aufzählung QAxScriptEngine::State sein.

© 2025 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.