The QAxScriptManager 類提供應用程序對象和腳本代碼之間的橋梁。 更多...
| 頭: | #include <QAxScriptManager> |
| qmake: | QT += axcontainer |
| 繼承: | QObject |
| QAxScriptManager (QObject * parent = nullptr) | |
| virtual | ~QAxScriptManager () override |
| 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 () |
| const QMetaObject | staticMetaObject |
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 為應用程序中的每個文檔。
[override virtual]
QAxScriptManager::
~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 .
返迴具有所有腳本名稱的列錶。