The QAxScriptManager 類提供應用程序對象和腳本代碼之間的橋梁。 更多...
| 頭: | #include <QAxScriptManager> |
| qmake: | QT += axcontainer |
| 繼承: | QObject |
| QAxScriptManager (QObject * parent = Q_NULLPTR) | |
| ~QAxScriptManager () | |
| void | addObject (QAxBase * object ) |
| void | addObject (QObject * object ) |
| 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 = QAxScript::FunctionNames) const |
| QAxScript * | load (const QString & code , const QString & name , const QString & 語言 ) |
| QAxScript * | load (const QString & file , const QString & name ) |
| QAxScript * | script (const QString & name ) const |
| QStringList | scriptNames () const |
| void | error (QAxScript * script , int code , const QString & 描述 , int sourcePosition , const QString & sourceText ) |
| bool | registerEngine (const QString & name , const QString & extension , const QString & code = QString()) |
| QString | scriptFileFilter () |
The QAxScriptManager 類提供應用程序對象和腳本代碼之間的橋梁。
The QAxScriptManager 充當在 Qt 應用程序嵌入 COM 對象之間的橋梁透過 QAxObject or QAxWidget ,及透過 Windows Script 技術可用的腳本語言,通常是 JScript 和 VBScript。
創建一個 QAxScriptManager 為應用程序中的每個單獨文檔,並添加需要訪問腳本的 COM (組件對象模型) 對象使用 addObject ()。然後 load () 腳本源代碼並援引函數使用 call ().
警告: 此類不可用於 bcc5.5 編譯器。
另請參閱 QAxScript , QAxScriptEngine , QAxBase ,和 ActiveQt 框架 .
創建 QAxScriptManager 對象。 parent 被傳遞給 QObject 構造函數。
通常創建一個 QAxScriptManager 為應用程序中的每個文檔。
銷毀對象,釋放所有分配資源。
添加 object 到管理器。由此管理器處理的腳本可以訪問代碼中的對象,使用對象的 objectName 特性。
必須添加所有必要對象,在加載任何腳本之前。
這是重載函數。
添加一般 COM (組件對象模型) 包裹器為 object 到管理器。 object 必須被暴露成 COM 對象使用功能提供通過 QAxServer 模塊。使用此函數的應用程序必須鏈接到 qaxserver 庫。
調用 function ,傳遞參數 var1 , var1 , var2 , var3 , var4 , var5 , var6 , var7 and var8 作為自變量並返迴由函數返迴的值,或無效 QVariant 若函數不返迴值 (或當函數調用失敗時)。調用返迴,當腳本執行完成時。
大多數腳本引擎僅支持的參數類型為 const QVariant &,例如,要調用 JavaScript 函數
function setNumber(number)
{
n = number;
}
使用
QValueList args; args << 5; script->call("setNumber(const QVariant&)", args);
就像 dynamicCall 參數可以被直接嵌入函數字符串中。
script->call("setNumber(5)");
不管怎樣,這更慢。
不支持自省由腳本引擎提供的函數不可用,且必須直接被調用使用 QAxScript::call () 在各個 script 對象。
注意,調用此函數會比使用 call() 顯著更慢在各個 QAxScript 直接。
這是重載函數。
調用 function 傳遞 arguments 作為參數,並返迴結果。返迴當腳本執行完成時。
[signal]
void
QAxScriptManager::
error
(
QAxScript
*
script
,
int
code
, const
QString
&
描述
,
int
sourcePosition
, const
QString
&
sourceText
)
此信號被發射,齣現執行錯誤當運行 script .
code , 描述 , sourcePosition and sourceText 包含執行錯誤的有關信息。
警告: 不要刪除 script 在連接到此信號的槽中。使用 deleteLater () 代替。
返迴具有所有可用函數的列錶。不支持自省由腳本引擎提供的函數不在列錶中。函數按完整原型提供 (或按名稱提供),從屬值對於 flags .
加載腳本源 code 使用腳本引擎對於 語言 。稍後可以引用腳本,以使用其 name 不應為空。
函數返迴指針指嚮腳本為給定 code 若 code 加載成功;否則它返迴 0。
若 語言 為空,將啓發式確定它。若 code 包含字符串 End Sub 會將它解釋成 VBScript,否則解釋成 JScript。可以注冊其它腳本語言使用 registerEngine ().
必須添加所有必要對象 (使用 addObject ()) before 加載任何腳本。若 code 聲明已經可用的函數 (無論按哪種語言),將重載第 1 個函數且不再可以被調用憑藉 call ();但它仍然是可用的通過調用其 script 直接。
另請參閱 addObject (), scriptNames (),和 functions ().
這是重載函數。
加載源代碼從 file 。稍後可以引用腳本,以使用其 name 不應為空。
函數返迴的指針指嚮腳本引擎對於代碼在 file if file 加載成功;否則它返迴 0。
所用腳本引擎由文件擴展名確定。默認情況下,.js 文件被解釋成 JScript 文件,而 .vbs 和 .dsm 文件被解釋成 VBScript。可以注冊其它腳本引擎使用 registerEngine ().
[static]
bool
QAxScriptManager::
registerEngine
(const
QString
&
name
, const
QString
&
extension
, const
QString
&
code
= QString())
注冊腳本引擎稱為 name 並返迴 true 若找到引擎;否則什麼都不做並返迴 false。
將使用腳本引擎,當加載文件具有給定 extension ,或當加載的源代碼包含字符串 code .
返迴腳本稱為 name .
可以使用返迴指針以直接調用函數透過 QAxScript::call (),以直接訪問腳本引擎,或刪除並因此卸載腳本。
[static]
QString
QAxScriptManager::
scriptFileFilter
()
返迴列齣所有支持腳本語言的文件過濾器。此過濾器字符串是方便的為用於 QFileDialog .
返迴具有所有腳本名稱的列錶。