QAxScript 類

The QAxScript 類提供圍繞腳本代碼的包裹器。 更多...

頭: #include <QAxScript>
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 & 語言 = QString())
QString scriptCode () const
QAxScriptEngine * scriptEngine () const
QString scriptName () const

信號

void entered ()
void error (int code , const QString & 描述 , int sourcePosition , const QString & sourceText )
void finished ()
void finished (const QVariant & result )
void finished (int code , const QString & source , const QString & 描述 , const QString & help )
void stateChanged (int state )

靜態公共成員

const QMetaObject staticMetaObject

額外繼承成員

詳細描述

The QAxScript 類提供圍繞腳本代碼的包裹器。

每個實例化的 QAxScript 類錶示一塊特定腳本語言腳本代碼。將代碼加載進腳本引擎是使用 load ()。可以調用代碼中的聲明函數是使用 call ().

腳本提供 scriptEngine () 透過信號嚮應用程序提供反饋。最重要信號是 error () 信號。直接訪問 QAxScriptEngine 的提供是透過 scriptEngine () 函數。

警告: 此類不可用於 bcc5.5 編譯器。

另請參閱 QAxScriptEngine , QAxScriptManager , QAxBase ,和 ActiveQt 框架 .

成員類型文檔編製

enum QAxScript:: FunctionFlags

此 FunctionFlags 枚舉描述函數的自省格式。

常量 描述
QAxScript::FunctionNames 0 隻返迴函數名稱。
QAxScript::FunctionSignatures 1 返迴具有簽名的函數。

成員函數文檔編製

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

構造 QAxScript 對象稱為 name 並注冊它采用 QAxScriptManager manager 。通常做到這是通過 QAxScriptManager 類當 加載腳本 .

腳本應始終擁有名稱。為允許腳本代碼引用應用程序中的對象,管理器是必要的。 manager 擁有對象的所有權。

[override virtual] 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 and 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 & 描述 , int sourcePosition , const QString & sourceText )

此信號被發射,當運行腳本時齣現執行錯誤。

code , 描述 , sourcePosition and 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 & 描述 , const QString & help )

這是重載函數。

code , source , 描述 and 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 & 語言 = QString())

加載腳本源 code 編寫按語言 語言 進腳本引擎。返迴 true 若 code 成功進入腳本引擎;否則返迴 false。

語言 為空 (默認),將啓發式確定它。若 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 枚舉。