firefox 插件 开发(3)-基于QT的firefox插件
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Qt 开发浏览器插件
Qt的Browsesr Plugin框架,通过简单的办法将widget或者objects编程浏览器支持的插件(支持Netscape LiveConnect APIs的浏览器)。
Netscape, Mozilla FireFox and Opera 支持Qt的插件。ActiveQt用来支持IE的插件ActiveX。
1.下载qtbrowserplugin-
2.4_1-opensource.zip
参考网站:
/products/appdev/add-on-products/catalog/4/Utiliti es/qtbrowserplugin/
我将下载后解压的文件放在
D:\QT-VS2008_Develop\qtbrowserplugin-2.4_1-opensource
然后按照INSTALL.TXT上的内容来编译例子和安装帮助文件等。
(1)编译例子
从命令行进入D:\QT-VS2008_Develop\qtbrowserplugin-2.4_1-opensource后,首先qmake 然后make
(2)安装帮助文档
2.windows 下用vs2008+qt编译插件,并测试插件
如果没有Vs2008与qt的编译环境,需要建立环境。
(1)新建Qt工程
A. 选择Qt Applilcation 名称为qtwebpluginstest。
B.点击OK后,点击Finish即可建立工程
(2)打开文件qtwebpluginstest.ui,
在Qt Desiner中拖拽PushButton放置于窗口,修改其名称为“点击我吧”。
(3)在工程中添加文件
A.D:\QT-VS2008_Develop\qtbrowserplugin-2.4_1-opensource\src\ qtbrowserplugin.cpp
B.D:\QT-VS2008_Develop\qtbrowserplugin-2.4_1-opensource\src\ qtbrowserplugin.def
C.D:\QT-VS2008_Develop\qtbrowserplugin-2.4_1-opensource\src\ qtbrowserplugin_win.cpp
如果已变成动态库dll的时候可以引入动态库dll。
(4)在工程中添加qtwebpluginstest.rc文件
文件内容中模仿
D:\QT-VS2008_Develop\qtbrowserplugin-2.4_1-opensource\examples \trivial\trivial.rc
注意mimetype的值为“qtwebpluginstest/very”,其它提示插件内容可根据需要修改。
(5)在工程文件qtwebpluginstest.h中添加Q_CLASSINFO信息,信息与rc信息中的mimetype一致。
(6)在工程文件qtwebpluginstest.cpp中增加创建插件的信息
(7)改变工程属性
A.general->configuration type 改为dynaminc library(.dll)
B.c++->general->additional include directories 中增加包含文件
D:\QT-VS2008_Develop\qtbrowserplugin-2.4_1-opensource\src
C.
D.c/c++->preprocessor中增加预定义宏
QTWEBPLUGINSTEST_EXPORTS
E.linker->outputfile 变更为 $(OutDir)\np$(ProjectName).dll
注意一定要以np开头,dll结尾否则firefox不是别插件
F. linker-> 变更为
D:\QT-VS2008_Develop\qtbrowserplugin-2.4_1-opensource\src\qtbrowserpl ugin.def
(8)编译
如果发生错误
D:\QT-VS2008_Develop\qtbrowserplugin-2.4_1-opensource\src\qtbrowserplugin.h(130) : error C2027: use of undefined type 'QMetaClassInfo'
在文件qtbrowserplugin中添加#include
(9)将编译生成的dll放置到firefox 的plugins目录,使用测试文件test.html 既可以看到我们的插件了。
3.windows下用QCreator编译插件,并测试插件
(1)新建Qt工程 qtwebpluginstest
4.内部事件调用以及外部访问接口
(1)内部事件调用
qwebpluginstest.h中增加事件
A.paintevent(QPaintevent*)重绘窗口,在指定位置显示当前时间
B.mousePressEvent(QMouseEvent*) 鼠标按下事件,按下后用update来刷新窗口,显示按下时的系统时间。
Qwebpluginstest.cpp
初始化的时候显示时间是: 11:00:44
鼠标按下后显示时间是: 11:01:56
综上,插件的内部事件调用机制与桌面应用程序没有区别。
(2)外部访问接口
外部访问接口必须是公有的槽。
A. 公有的槽
qwebpluginstest.h中增加槽
qwebpluginstest.cpp