QAxScript Class
QAxScript クラスは、スクリプト・コードのラッパーです。詳細...
ヘッダー | #include <QAxScript> |
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::FunctionNames | 0 | 関数名のみが返されます。 |
QAxScript::FunctionSignatures | 1 | シグネチャを持つ関数を返します。 |
メンバ関数のドキュメント
QAxScript::QAxScript(const QString &name, QAxScriptManager *manager)
name という QAxScript オブジェクトを構築し、QAxScriptManager manager に登録します。これは通常、loading a script のときにQAxScriptManager クラスによって行われます。
スクリプトには必ず名前が必要です。マネージャーは、スクリプトコードがアプリケーション内のオブジェクトを参照できるようにするために必要です。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)
これはオーバーロードされた関数である。
arguments をパラメータとしてfunction を呼び出し、結果を返す。スクリプトの実行が終了したときに返されます。
スクリプト関数の呼び出し方についての詳細は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()
このシグナルは、スクリプト・エンジンがコードの実行を終了したときに発せられる。
注意:シグナルfinishedはこのクラスでオーバーロードされています。関数ポインタ構文を使用してこのシグナルに接続するために、Qt は関数ポインタを取得する便利なヘルパーを提供しています:
connect(axScript, QOverload<>::of(&QAxScript::finished), [=](){ /* ... */ });
[signal]
void QAxScript::finished(const QVariant &result)
これはオーバーロードされた関数である。
result にはスクリプトの結果が含まれます。スクリプトに戻り値がない場合、これは無効な になります。QVariant
注意:Signalfinishedはこのクラスでオーバーロードされています。関数ポインタ構文を使用してこのシグナルに接続するために、Qtはこの例に示すように関数ポインタを取得する便利なヘルパーを提供しています:
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)
これはオーバーロードされた関数である。
code source 、 、 はスクリプトが終了したときの例外情報を含む。description help
注:Signalfinishedはこのクラスでオーバーロードされています。関数ポインタ構文を使用してこのシグナルに接続するために、Qtは関数ポインタを取得する便利なヘルパーを提供しています:
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
それぞれのスクリプトエンジンがイントロスペクションをサポートしている場 合は、このスクリプトのすべての関数のリストを返す。そうでない場合は空のリストを返す。関数は、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 オブジェクトごとに一度だけ呼び出すことができます。QAxScriptManager::load() を使用すると、自動的に呼び出されます。
QString QAxScript::scriptCode() const
スクリプトのコードを返します。コードがまだ読み込まれていない場合は null 文字列を返します。
load()も参照ください 。
QAxScriptEngine *QAxScript::scriptEngine() const
スクリプト・エンジンへのポインタを返します。
返されたオブジェクトを使用して、シグナルをスクリプト関数に接続したり、スクリプトエンジンに直接アクセスしたりすることができます。
QString QAxScript::scriptName() const
スクリプトの名前を返します。
[signal]
void QAxScript::stateChanged(int state)
このシグナルは、スクリプトエンジンの状態が変化したときに発せられる。state には、QAxScriptEngine::State
列挙中の任意の値を指定できる。
© 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.