《Qt插件开发》.docx

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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

文档评论(0)

wgvi + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档