Auf dieser Seite

QAxScriptManager Class

Die Klasse „QAxScriptManager“ bildet eine Brücke zwischen Anwendungsobjekten und Skriptcode. Mehr...

Überschrift: #include <qaxscript.h>
CMake: find_package(Qt6 REQUIRED COMPONENTS AxContainer)
target_link_libraries(mytarget PRIVATE Qt6::AxContainer)
qmake: QT += axcontainer
Erbt: QObject

Öffentliche Funktionen

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

Signale

void error(QAxScript *script, int code, const QString &description, int sourcePosition, const QString &sourceText)

Statische öffentliche Mitglieder

bool registerEngine(const QString &name, const QString &extension, const QString &code = QString())
QString scriptFileFilter()

Ausführliche Beschreibung

Der QAxScriptManager fungiert als Brücke zwischen den COM-Objekten, die über ` QAxObject ` oder ` QAxWidget` in die Qt-Anwendung eingebettet wurden, und den über die Windows-Script-Technologien verfügbaren Skriptsprachen, in der Regel JScript und VBScript.

Erstellen Sie für jedes einzelne Dokument in Ihrer Anwendung einen QAxScriptManager und fügen Sie die COM-Objekte, auf die die Skripte zugreifen müssen, mit ` addObject()` hinzu. Rufen Sie anschließend die Skriptquellen mit ` load()` ab und rufen Sie die Funktionen mit ` call()` auf.

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

Siehe auch „ QAxScript“ , „ QAxScriptEngine “, „ QAxBase “ und „ActiveQt Framework“.

Dokumentation zu den Mitgliedsfunktionen

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

Erstellt ein QAxScriptManager-Objekt. „ parent “ wird an den Konstruktor von „ QObject “ übergeben.

Üblicherweise wird für jedes Dokument in einer Anwendung ein QAxScriptManager erstellt.

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

Löscht die Objekte und gibt alle zugewiesenen Ressourcen frei.

void QAxScriptManager::addObject(QAxBase *object)

Fügt dem Manager „ object “ hinzu. Skripte, die von diesem Manager verwaltet werden, können im Code über die Eigenschaft „ objectName “ des Objekts auf das Objekt zugreifen.

Sie müssen alle erforderlichen Objekte hinzufügen, bevor Sie Skripte laden.

void QAxScriptManager::addObject(QObject *object)

Fügt dem Manager einen generischen COM-Wrapper für object hinzu. object muss mithilfe der vom Modul „ QAxServer “ bereitgestellten Funktionen als COM-Objekt verfügbar gemacht werden. Anwendungen, die diese Funktion nutzen, müssen gegen die qaxserver-Bibliothek verknüpft werden.

Dies ist eine überladene Funktion.

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

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 „ QVariant “, falls die Funktion keinen Wert zurückgibt oder der Funktionsaufruf fehlgeschlagen ist. Der Aufruf endet, sobald die Ausführung des Skripts abgeschlossen ist.

In den meisten Skript-Engines ist der einzige unterstützte Parametertyp „const QVariant&“, beispielsweise um eine JavaScript-Funktion aufzurufen

function setNumber(number)
{
    n = number;
}

verwenden Sie

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

Wie bei „ dynamicCall “ können die Parameter direkt in die Funktionszeichenfolge eingebettet werden.

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

Dies ist jedoch langsamer.

Funktionen, die von Skript-Engines bereitgestellt werden, die keine Introspektion unterstützen, sind nicht verfügbar und müssen direkt mit ` QAxScript::call()` auf dem jeweiligen ` script `-Objekt aufgerufen werden.

Beachten Sie, dass der Aufruf dieser Funktion deutlich langsamer sein kann als die direkte Verwendung von `call()` auf dem jeweiligen ` QAxScript `.

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

Ruft „ function “ auf, übergibt „ arguments “ als Parameter und gibt das Ergebnis zurück. Beendet die Ausführung, sobald das Skript fertig ist.

Dies ist eine überladene Funktion.

[signal] void QAxScriptManager::error(QAxScript *script, int code, const QString &description, int sourcePosition, const QString &sourceText)

Dieses Signal wird ausgelöst, wenn beim Ausführen von script ein Ausführungsfehler aufgetreten ist.

code„ description “, „ sourcePosition “ und „ sourceText “ enthalten Informationen zum Ausführungsfehler.

Warnung: LöschenSie „ script “ nicht in einem Slot, der mit diesem Signal verbunden ist. Verwenden Sie stattdessen „ deleteLater()“.

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

Gibt eine Liste aller verfügbaren Funktionen zurück. Funktionen, die von Skript-Engines bereitgestellt werden, die keine Introspektion unterstützen, sind in der Liste nicht enthalten. Die Funktionen werden je nach dem Wert von ` flags` entweder mit vollständigen Prototypen oder nur als Namen angegeben.

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

Lädt die Skriptquelle code mithilfe der Skript-Engine für language. Auf das Skript kann später über seine name verwiesen werden, die nicht leer sein darf.

Die Funktion gibt einen Zeiger auf das Skript für die angegebene „ code “ zurück, wenn die „ code “ erfolgreich geladen wurde; andernfalls gibt sie 0 zurück.

Ist „ language “ leer, wird die Skriptsprache heuristisch ermittelt. Enthält „ code “ die Zeichenfolge „End Sub“, wird das Skript als VBScript interpretiert, andernfalls als JScript. Zusätzliche Skript-Engines können über „ registerEngine()“ registriert werden.

Sie müssen alle erforderlichen Objekte (mit addObject()) hinzufügen, bevor Sie Skripte laden. Wenn code eine Funktion deklariert, die bereits verfügbar ist (unabhängig von der Sprache), wird die erste Funktion überladen und kann nicht mehr über call() aufgerufen werden; sie ist jedoch weiterhin verfügbar, wenn ihr script direkt aufgerufen wird.

Siehe auch addObject(), scriptNames() und functions().

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

Lädt den Quellcode von file. Auf das Skript kann später über dessen name verwiesen werden, das nicht leer sein sollte.

Die Funktion gibt einen Zeiger auf die Skript-Engine für den Code in „ file “ zurück, sofern „ file “ erfolgreich geladen wurde; andernfalls gibt sie 0 zurück.

Die verwendete Skript-Engine wird anhand der Dateiendung ermittelt. Standardmäßig werden „.js“-Dateien als JScript-Dateien interpretiert, „.vbs“- und „.dsm“-Dateien hingegen als VBScript. Weitere Skript-Engines können mithilfe von registerEngine() registriert werden.

Dies ist eine überladene Funktion.

[static] bool QAxScriptManager::registerEngine(const QString &name, const QString &extension, const QString &code = QString())

Registriert die Skript-Engine namens „ name “ und gibt „true“ zurück, wenn die Engine gefunden wurde; andernfalls wird nichts unternommen und „false“ zurückgegeben.

Die Skript-Engine wird beim Laden von Dateien mit dem angegebenen „ extension “ oder beim Laden von Quellcode verwendet, der die Zeichenfolge „ code “ enthält.

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

Gibt das Skript „ name “ zurück.

Sie können den zurückgegebenen Zeiger verwenden, um Funktionen direkt über ` QAxScript::call()` aufzurufen, direkt auf die Skript-Engine zuzugreifen oder das Skript zu löschen und damit zu entladen.

[static] QString QAxScriptManager::scriptFileFilter()

Gibt einen Dateifilter zurück, der alle unterstützten Skriptsprachen auflistet. Diese Filterzeichenfolge eignet sich besonders gut für die Verwendung mit ` QFileDialog`.

QStringList QAxScriptManager::scriptNames() const

Gibt eine Liste mit den Namen aller Skripte zurück.

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