QAxScript Class
QAxScript クラスは、スクリプト・コードのラッパーです。詳細...
Header: | #include <QAxScript> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS AxContainer) target_link_libraries(mytarget PRIVATE Qt6::AxContainer) |
qmake: | QT += axcontainer |
Inherits: | 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
注意:このクラスでは、シグナルfinishedがオーバーロードされています。関数ポインタ構文を使用してこのシグナルに接続するために、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 にはスクリプトが終了したときの例外情報が含まれています。
注意:このクラスでは、シグナルfinishedがオーバーロードされています。関数ポインタ構文を使用してこのシグナルに接続するために、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
列挙中の任意の値を指定できます。
本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。