- 1、本文档共12页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《Qt插件开发》.docx
详解 Qt 动态插件编写要点
2011-06-27 16:59 佚名 互联网? HYPERLINK /symbian-271633.htm \l commment \t _self 我要评论(0)?字号: HYPERLINK javascript:setfont(12); \t _self T?|? HYPERLINK javascript:setfont(16); \t _self T
本文介绍的是Qt 动态插件编写要点,一般在编程的过程中都要注意编写规则,那么性质一样,先来看本文内容。
AD:? HYPERLINK /2012/ \t _blank 51CTO云计算架构师峰会 抢票进行中!
Qt 动态插件编写要点是本文要介绍的内容,有介绍Qt插件在.pro工程文件中的内容,不多说了,先来看内容。
一、编写插件的四个步骤
1.?声明一个插件类。
2.?实现插件提供的接口。
3.?使用Q_EXPORT_PLUGIN2() 宏导出插件。
4.?使用一个适当的.pro工程文件构建插件。
二、声明插件类
我们继承QObject和接口类(interface类)两个类来构造这个插件类。Q_INTERFACES宏告知Qt这个类实现的是哪个接口。如:
Q_INTERFACES(FilterInterface)?
三、实现插件提供的接口
在插件类的实现文件中实现插件所提供的接口,供调用。
四、导出插件
在插件接口实现文件中,我们使用Q_EXPORT_PLUGIN2宏让Qt知道该类是一个插件。如:
Q_EXPORT_PLUGIN2(pnp_extrafilters,?ExtraFiltersPlugin);?
第一个参数是插件的名字;通常给予插件和其生成的目标库文件(.pro中TARGET变量所赋的名字)有着相同的名字。
五、动态插件的 .pro工程文件
Here’s the project file for building the Extra Filters plugin:
TEMPLATE????? = lib???? //模块设置,lib指生成库文件,app指生成应用程序(默认)
CONFIG?????? += plugin? //CONFIG用来告诉qmake关于应用程序的配置信息,静态插就添加为plugin static。??????INCLUDEPATH? += ../..??? //INCLUDEPATH变量设置全局头文件的寻找路径(例如使用
#include …包含的头文件) “.”当前目录,”..”上一层目录。(在这里是为了能够添加接口定义文件interface.h)??
HEADERS?????? = extrafiltersplugin.h??//工程中包含的头文件
SOURCES?????? = extrafiltersplugin.cpp?//工程中包含的源文件
TARGET??????? = $$qtLibraryTarget(pnp_extrafilters)?//TARGET变量指定生成的目标库文件的名字,生成应用程序时即指定生成应用程序名
通常TARGET和插件(由Q_EXPORT_PLUGIN2设置)拥有相同的名字。????DESTDIR ??????? = ../../plugandpaint/plugins ?//DESTDIR变量指定我们要安装(生成)
插件的地方,即指定放置生成的应用程序(插件)的目录。????用蓝色字体显示的表示根据具体应用程序会做相应改变。
六、接口的定义
接口类定义了插件所提供的函数。一个接口是一个只由纯虚函数组成的类。
我们使用Q_DECLARE_INTERFACE宏让Qt的元对象系统(meta object system)注意到接口。如:
Q_DECLARE_INTERFACE(FilterInterface,?com.trolltech.PlugAndPaint.FilterInterface/1.0);?
这样做才有可能在运行时识别插件并实现接口。第二个参数是一个必须以唯一的方式识别接口的字符串。
注:Qt Creator编译链接后会将可执行文件生成到一个projectname_build_desktop的目录中,如想要生成的文件生成在源代码所在目录下,方法如下:
选择Qt Creator左边的“Project”标签,?General栏目中有一个选择框“Shadow Build”,取消即可。?Shadow Build也就是使构建生成的目录和源代码目录分开,可根据自己的使用习惯设置。
七、插件Qt工程文件.pro往Visual Studio 2005中的移植
Qt插件的.pro工程文件中,会包含构建插件所需的特定配置信息,在VS
您可能关注的文档
- 《led专业电源测试方法》.ppt
- 《LED电源测试技术及仿真负载介绍》.pdf
- 《LED电源驱动器测试解决方案》.pdf
- 《Lightroom人像美化插件 让作品达到专业水平》.doc
- 《Linux-网络性能测试工具》.pdf
- 《Linux下插件开发应用案例》.doc
- 《Linux操作系统教程02》.doc
- 《Linux操作系统案例教程电子教案_第3章_文件管理》.ppt
- 《LIXIAOGUANG客户端功能测试培训》.pptx
- 《LMS Test.Lab中文操作指南_Signature信号特征测试分析》.pdf
- 中国国家标准 GB/T 18233.4-2024信息技术 用户建筑群通用布缆 第4部分:住宅.pdf
- GB/T 18233.4-2024信息技术 用户建筑群通用布缆 第4部分:住宅.pdf
- GB/T 18978.210-2024人-系统交互工效学 第210部分:以人为中心的交互系统设计.pdf
- 《GB/T 18978.210-2024人-系统交互工效学 第210部分:以人为中心的交互系统设计》.pdf
- 中国国家标准 GB/T 18978.210-2024人-系统交互工效学 第210部分:以人为中心的交互系统设计.pdf
- GB/T 16649.2-2024识别卡 集成电路卡 第2部分:带触点的卡 触点的尺寸和位置.pdf
- 《GB/T 16649.2-2024识别卡 集成电路卡 第2部分:带触点的卡 触点的尺寸和位置》.pdf
- 中国国家标准 GB/T 16649.2-2024识别卡 集成电路卡 第2部分:带触点的卡 触点的尺寸和位置.pdf
- GB/T 17889.4-2024梯子 第4部分:铰链梯.pdf
- 《GB/T 17889.4-2024梯子 第4部分:铰链梯》.pdf
文档评论(0)