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.
Konstante | Wert | Beschreibung |
---|---|---|
QAxScript::FunctionNames | 0 | Es werden nur Funktionsnamen zurückgegeben. |
QAxScript::FunctionSignatures | 1 | Gibt 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.