このページでは

QAxScript Class

QAxScript クラスは、スクリプトコードをラップする機能を提供します。詳細...

ヘッダー: #include <qaxscript.h>
CMake: find_package(Qt6 REQUIRED COMPONENTS AxContainer)
target_link_libraries(mytarget PRIVATE Qt6::AxContainer)
qmake: QT += axcontainer
継承元: QObject

パブリック型

enum FunctionFlags { FunctionNames, FunctionSignatures }

パブリック関数

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

シグナル

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)

詳細な説明

QAxScriptクラスの各インスタンスは、特定のスクリプト言語によるスクリプトコードの一部を表します。このコードは、load() を使用してスクリプトエンジンに読み込まれます。コード内で宣言された関数は、call() を使用して呼び出すことができます。

スクリプトは、scriptEngine() を通じてシグナルを介してアプリケーションにフィードバックを提供します。最も重要なシグナルは、error() シグナルです。QAxScriptEngine への直接アクセスは、scriptEngine() 関数を通じて提供されます。

警告: このクラスは bcc5.5 コンパイラでは利用できません。

関連項目: QAxScriptEngine 、QAxScriptManager 、QAxBase 、およびActiveQt Framework。

メンバ型のドキュメント

enum QAxScript::FunctionFlags

この FunctionFlags 列挙型は、関数のイントロスペクションにおける書式設定を定義します。

定数値説明
QAxScript::FunctionNames0関数名のみが返されます。
QAxScript::FunctionSignatures1シグネチャ付き関数を返します。

メンバ関数のドキュメント

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

name という名前の QAxScript オブジェクトを作成し、QAxScriptManager (manager )に登録します。これは通常、QAxScriptManager クラスがloading a script を実行する際に実行されます。

スクリプトには常に名前が必要です。スクリプトコードがアプリケーション内のオブジェクトを参照できるようにするには、マネージャーが必要です。manager は、そのオブジェクトの所有権を取得します。

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

オブジェクトを破棄し、割り当てられたすべてのリソースを解放します。

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

function を呼び出し、引数としてvar1 、var1 、var2 、var3 、var4 、var5 、var6 、var7 、var8 を渡します。そして、関数が返した値を返します。関数が値を返さない場合や、関数の呼び出しが失敗した場合は、無効なQVariant を返します。

スクリプト関数の呼び出し方法の詳細については、QAxScriptManager::call() を参照してください。

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

`function ` を呼び出し、パラメータとして `arguments ` を渡し、その結果を返します。スクリプトの実行が終了すると戻ります。

スクリプト関数の呼び出し方法の詳細については、QAxScriptManager::call() を参照してください。

これはオーバーロードされた関数です。

[signal] void QAxScript::entered()

このシグナルは、スクリプトエンジンがコードの実行を開始したときに発信されます。

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

このシグナルは、スクリプトの実行中に実行エラーが発生した際に発行されます。

code description 、 、および には、実行エラーに関する情報が含まれています。sourcePosition sourceText

[signal] void QAxScript::finished()

このシグナルは、スクリプトエンジンがコードの実行を完了したときに発生します。

注:この シグナルは オーバーロードされています。このシグナルに接続するには:

// 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 スクリプトの実行結果が含まれます。スクリプトに戻り値がない場合、これは無効なQVariant となります。

注:この シグナルは オーバーロードされています。このシグナルに接続するには:

// 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 およびhelp には、スクリプトが終了した際の例外情報が含まれています。

注:この シグナルは オーバーロードされています。このシグナルに接続するには:

// 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

該当するスクリプトエンジンがイントロスペクションをサポートしている場合、このスクリプト内のすべての関数のリストを返します。サポートしていない場合は、空のリストを返します。関数は、flags の値に応じて、完全なプロトタイプ付きで提供されるか、名前のみとして提供されます。

QAxScriptEngine::hasIntrospection()も参照してください 。

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

言語language で記述されたスクリプトソースcode をスクリプトエンジンに読み込みます。code がスクリプトエンジンに正常に読み込まれた場合はtrueを返し、そうでない場合はfalseを返します。

language が空の場合(デフォルト)、ヒューリスティックに決定されます。code に文字列「End Sub 」が含まれている場合はVBScriptとして、含まれていない場合はJScriptとして解釈されます。その他のスクリプト言語は、QAxScriptManager::registerEngine() を使用して登録できます。

この関数は、各QAxScript オブジェクトに対して1回のみ呼び出すことができます。これは、QAxScriptManager::load()を使用する際に自動的に実行されます。

QString QAxScript::scriptCode() const

スクリプトのコードを返します。まだコードが読み込まれていない場合は、空文字列を返します。

load()も参照してください 。

QAxScriptEngine *QAxScript::scriptEngine() const

スクリプトエンジンへのポインタを返します。

返されたオブジェクトを使用して、シグナルをスクリプト関数に接続したり、スクリプトエンジンに直接アクセスしたりすることができます。

QString QAxScript::scriptName() const

スクリプトの名前を返します。

[signal] void QAxScript::stateChanged(int state)

このシグナルは、スクリプトエンジンが状態を変更したときに発生します。state には、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.