




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
./QT瀏覽器插件開發(fā)入門簡介主流的瀏覽器插件開發(fā)主要分為兩種:ActiveX控件,適合IE核的瀏覽器NPAPI插件,適合Netscape瀏覽器的開發(fā)NPAPI全稱為NetscapePluginApplicationProgrammingInterface在QT4.7.2下有這兩種模式的開發(fā)支持,相關(guān)資料可在Qt文檔上找到,ActiveX開發(fā)有QT提供ActiveQTserverlibrary支持庫〔QT4.7.2,NPAPI開發(fā)QT4.7.2本身無此支持,需要下載相關(guān)的API,下載,解壓后qtbrowserplugin目錄就是。下面是完成的一個測試,首先做了一個功能庫imagedemo,主要完成一個圖片的顯示功能,現(xiàn)在將它分別封裝為ActiveX控件和NPAPI插件,供不同瀏覽器調(diào)用。ActiveX創(chuàng)建QTApplication工程工程名稱:npgraphapp,創(chuàng)建時注意必須選擇ActiveQTserverlibrary,如下圖創(chuàng)建資源文件文件npgraphapp.rc中就一句話:1TYPELIB"npgraphapp.rc"修改類npgraphapp.h在文件中增加Q_CLASSINFO信息,代碼如下:#ifndefNPGRAPHAPP_H#defineNPGRAPHAPP_H#include<QtGui/QtGui>classnpgraphapp:publicQWidget{ Q_OBJECT Q_CLASSINFO<"ClassID","{4CFCDEDD-F2F6-42E9-8671-D63D7B15AA2C}">; Q_CLASSINFO<"InterfaceID","{615B202B-C4F2-4C9F-B9F5-2F9D52ECF0BC}">; Q_CLASSINFO<"EventsID","{C9C4EB5F-F926-4770-AA7F-50702B53DB3E}">;public: npgraphapp<QWidget*parent=0>; ~npgraphapp<>;…};#endif//NPGRAPHAPP_H修改main.cpp在文件中增加QAXFACTORY_BEGIN宏,代碼如下:#include"npgraphapp.h"#include<QtGui/QApplication>#include<ActiveQt/QAxFactory>QAXFACTORY_BEGIN<"{5E2C9F73-03E9-4351-9ECC-C46697D1A8D5}","{443A7F7F-FFE1-498A-AECB-D3EBCD5810CB}">QAXCLASS<npgraphapp>QAXFACTORY_END<>intmain<intargc,char*argv[]>{ QApplicationa<argc,argv>; if<!QAxFactory::isServer<>> { npgraphapp*w=newnpgraphapp<>; w->show<>; } returna.exec<>;}修改工程屬性增加生成事件,如下圖:在命令行中編輯〔注冊ActiveX控件C:\Qt\4.7.2\bin\idc.exe$<TargetPath>/idl$<IntDir>\npgraphapp.idl-version1.0iferrorlevel1gotoVCReportErrormidl$<IntDir>\npgraphapp.idl/nologo/tlb$<IntDir>\npgraphapp.tlbiferrorlevel1gotoVCReportErrorC:\Qt\4.7.2\bin\idc.exe$<TargetPath>/tlb$<IntDir>\npgraphapp.tlbiferrorlevel1gotoVCReportErrorC:\Qt\4.7.2\bin\idc.exe$<TargetPath>/regserver注冊和調(diào)用工程編譯后自動生成事件會注冊組件,注意看編譯信息是否注冊成功測試組件<OBJECTID="npgraphdemo"CLASSID="CLSID:4CFCDEDD-F2F6-42E9-8671-D63D7B15AA2C"HEIGHT="80%"WIDTH="80%"ALIGN="LEFT"></OBJECT>問題:如果僅僅在界面上繪制可創(chuàng)建QTActive庫,如果界面上需調(diào)用其它QT控件或自定義的QT控件,需創(chuàng)建為可執(zhí)行文件才可以NPAPI創(chuàng)建QTLibrary工程名稱:npgraphdemo下載,解壓后qtbrowserplugin目錄就是NPAPI的封裝支持,使用src中的文件,將下列的五個文件拷貝到工程目錄下,在工程中加入qtnpapi.hqtbrowserplugin.hqtbrowserplugin_p.hqtbrowserplugin.cppqtbrowserplugin_win.cpp〔windows操作系統(tǒng)增加資源文件文件名稱是npgraphdemo.rc,容如下1VERSIONINFOFILEVERSION1,0,0,1PRODUCTVERSION1,0,0,1FILEFLAGSMASK0x3fL#ifdef_DEBUGFILEFLAGS0x1L#elseFILEFLAGS0x0L#endifFILEOS0x4LFILETYPE0x2LFILESUBTYPE0x0LBEGINBLOCK"StringFileInfo"BEGINBLOCK"040904e4"BEGINVALUE"Comments","\0"VALUE"CompanyName","Nokia\0"VALUE"FileDescription","grapher\0"VALUE"FileExtents","g1n\0"VALUE"FileOpenName","Graphabledata<*.g1n>\0"VALUE"FileVersion","1,0,0,1\0"VALUE"InternalName","npgraphdemo\0"VALUE"LegalTrademarks","\0"VALUE"MIMEType","application/grapher"VALUE"OriginalFilename","npgraphdemo.dll\0"VALUE"PrivateBuild","\0"VALUE"ProductName","graphernpapiexample\0"VALUE"ProductVersion","1,0,0,1\0"VALUE"SpecialBuild","\0"ENDENDBLOCK"VarFileInfo"BEGINVALUE"Translation",0x409,1252ENDEND注意VALUE"MIMEType","application/grapher"這句,其中的MIMEType后面字符串為自定義類型新建模塊定義文件在工程選擇"新建項",創(chuàng)建npgraphdemo.def,如下圖文件容:LIBRARY "npgraphdemo"EXPORTS NP_GetEntryPoints1 NP_Initialize2 NP_Shutdown3修改npgraphdemo.h在文件增加Q_CLASSINFO定義,注意Q_CLASSINFO<"MIME","application/grapher:g1n:GraphableASCIInumericdata">,此處的定義要和資源文件的MIMEType定義的一致#ifndefGRAPHFROM_H#defineGRAPHFROM_H#include<QtGui/QtGui>#include<qtbrowserplugin.h>QT_BEGIN_NAMESPACEclassQVBoxLayout;QT_END_NAMESPACEclassnpgraphdemo:publicQWidget,publicQtNPBindable{ Q_OBJECT Q_CLASSINFO<"ClassID","{2e5b2715-46b2-4831-ba9b-6a3b195d5ec8}"> Q_CLASSINFO<"InterfaceID","{94581136-3c0c-46cc-97a1-066061356d43}"> Q_CLASSINFO<"EventsID","{8c191b77-1894-45c7-9d6b-201dede95410}"> Q_CLASSINFO<"MIME","application/grapher:g1n:GraphableASCIInumericdata"> Q_CLASSINFO<"ToSuperClass","npgraphdemo">public: npgraphdemo<QWidget*parent=0>; ~npgraphdemo<>;…};#endif//GRAPHFROM_H修改npgraphdemo.cpp在文件中增加QTNPFACTORY_BEGIN宏#include"npgraphdemo.h"#include"imagedemo.h"npgraphdemo::npgraphdemo<QWidget*parent>:QWidget<parent>{…}npgraphdemo::~npgraphdemo<>{}QTNPFACTORY_BEGIN<"Qt-basedGraphPlugin","AQt-basedNSAPIplug-inthatgraphsnumericdata">;QTNPCLASS<npgraphdemo>QTNPFACTORY_END<>修改工程屬性在"C/C++"下"預(yù)處理器"選項,增加"_X86_",如下圖編譯即可注冊和調(diào)用注冊方法如下1、在命令行中輸入regedit,打開注冊表編輯2、在HKEYLOCALMACHIN\SOFTWARE\MozillaPlugins下新建子項/
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 司機雇傭勞務(wù)合同范本
- 化學(xué)助劑采購合同范本
- 丹廈店面租房合同范本
- 中央團校培訓(xùn)心得體會
- 運城小學(xué)英語試卷
- 低壓電工試題庫含參考答案
- 會員服裝租賃合同范本
- 體現(xiàn)返利合同范本
- 中級電工考試模擬題(附參考答案)
- 烹飪原料知識??荚囶}含參考答案
- 自建房培訓(xùn)課件甘肅
- 閩教版四年級下冊勞動教案
- 中小學(xué)必背飛花令詩詞-(春、月、風(fēng)、花、山、江、人、日、動物、顏色、數(shù)字)
- 北師大版小學(xué)數(shù)學(xué)六年級下冊全冊一課一練課課練(含答案)
- 發(fā)揚體育精神展青春光彩
- 腳輪行走測試技術(shù)規(guī)范
- 頸部膿腫護理查房課件
- 跨境電子商務(wù)案例分析 習(xí)題及答案 易靜
- 信息技術(shù)與小學(xué)數(shù)學(xué)學(xué)科教學(xué)整合的
- 500格作文紙-(20x25)文檔
- 九年級中考物理-安培定則(右手螺旋定則)復(fù)習(xí)題匯總及解析
評論
0/150
提交評論