本文主要以圖文的方法和大家分享ActiveQt與js交互實現示例,希望能幫助到大家。
1、 vs2015+Qt 5.7 開發ActiveX創建工程
1.1、選擇“新建”中的“項目”
1.2、選擇Qt中的Qt ActiveQt Server,并填寫項目名稱等,界面如下:
1.3、接著點擊下一步直到完成即可,其中對外提供的接口定義如下圖所示:
2、 vs2015調試ActiveX控件環境配置
2.1、點擊調試按鈕下拉中選擇“附加進程到”
2.2、點擊“調試”按鈕下拉中選擇“附加進程到”進入如下界面:
2.3、查找iexplore.exe進程,選擇“標題”為空的ie瀏覽器進程,點擊“附加”按鈕,此時即可進行調試,界面如下:
3、 ActiveQt與js回調交互實現
3.1、方式一:js直接重寫Qt的信號函數
3.1.1、Qt定義信號方法
voideventCallBack(intnType, QStringstrEventName);
3.1.2、js重寫方法
首先要定義控件的OBJECT標簽,并指定id。假定id為ActiveQtServerCallBack,則js方法定義如下:
functionActiveQtServerCallBack::eventCallBack(nType,strEventName)
{
//實現的邏輯代碼
……
}
注意事項:(1)各參數名稱要一致;(2)該函數要放置在<OBJECT>標簽后面實現,否則會出現異常,無法進行回調;<ps:不知道js有沒有前置申明的概念>
3.2、方式二:js傳參回調
3.2.1、Qt定義供外部調用的傳參接口
intAttachEvent(constQString& eventName, IDispatch* dispFunc)
參數說明:
(1)eventName[in]:該參數可以自行選擇,這邊用做回調內容的顯示;
(2)dispFunc[in]:該參數是js傳遞進來的回調函數地址;
3.2.2、js定義回調方法
function ActiveQtServerCallBackTrainsmitTest(x, y, z, strEvent)
{
//實現的邏輯代碼
……
}
注意事項:其中x,y,z,strEvent參數要和Qt中定義的參數名稱一致,否則無法回調;
以上就是ActiveQt與js交互實現圖文講解的詳細內容,更多請關注php中文網其它相關文章!