firefox 插件 开发(3)-基于QT的firefox插件

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档