《QT插件建立》.doc

  1. 1、本文档共53页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《QT插件建立》.doc

详解如何建立Qt插件学习教程 如何建立Qt插件学习教程是本文要介绍的内容,主要是来了解QT中插件的应用,如何来建立,文中有详解,具体内容的实现来看详解。 QT提供2个API来建立插件 1、高层API扩展QT库。例如定制的数据库驱动,图像格式,字符编码,custom styles 2、底层API扩展QT应用程序 例如,如果想写自定义QStyle的子类,并让应用程序动态加载,需要使用高层API函数 因为高层API在底层API基础上构造,两者需要注意一些问题。 如果需要提供给QT Designeder插件,请参考QtDesigner模型文档 高层API 利用继承特定的基类来实现插件,需要实现其中的一些函数,并增加一个宏 QT中有不少插件的基类可供使用,继承的插件默认保存在标准插件目录的子目录下,否则Qt会找不到。 设计一个style类名为MyStyle的插件 文件mystyleplugin.h: class?MyStylePlugin?:?public?QStylePlugin ? { ? public: ? QStringList?keys()?const;????//返回此插件能够使用的style名称列表。 ? QStyle?*create(const?QString?key);//根据传入的style名称,返回style。 ? }; ? ? mystyleplugin.cpp ? #include?mystyleplugin.h ? ? QStringList?MyStylePlugin::keys()?const ? { ? return?QStringList()??MyStyle; ? } ? ? QStyle?*MyStylePlugin::create(const?QString?key) ? { ? if?(key.toLower()?==?mystyle) ? return?new?MyStyle; ? return?0; ? } ? ? Q_EXPORT_PLUGIN2(pnp_mystyleplugin,?MyStylePlugin)? 风格实现 文件mystyle.h: class?MyStyle?:?public?QWindowsStyle ? { ? Q_OBJECT ? ? public: ? MyStyle()?{}; ? ? void?polish(QPalette?palette); ? };? 继承自QWindowsStyle 风格实现 void?MyStyle::polish(QPalette?palette) ? { ? palette.setBrush(QPalette::Button,?Qt::red); ? }? (注意其中实现的大小写方式)。 实现数据库驱动,图像格式、文本编码和大多数其他插件类型时,一般不需要建立对象,Qt会找到他们并建立他们的对象。Style是一个特例,因为程序中科能会这样调用: QApplication::setStyle(QStyleFactory::create(MyStyle));? main.c文件: int?main(int?argv,?char?*args[]) ? { ? QApplication?app(argv,?args);//QT此时加载了插件 ? QApplication::setStyle(QStyleFactory::create(simplestyle)); ? ? StyleWindow?window; ? window.resize(200,?50); ? window.show(); ? ? return?app.exec(); ? }? TEMPLATE????=?lib? CONFIG?????+=?plugin ? HEADERS?????=?simplestyle.h?\ ? simplestyleplugin.h ? SOURCES?????=?simplestyle.cpp?\ ? simplestyleplugin.cpp ? TARGET??????=?simplestyleplugin? 注意,插件需要设置TEMPLATE,因为我们需要的是共享库而不是执行程序。同时必须设置CONFIG。需要将此插件保存到style文件夹(应用程序所在的文件夹)。这样应用程序就能够检测得到。 底层API:没有详细研究 不管是QT本身还是QT应用程序都可以通过插件扩展。这需要应用程序检测并通过QPluginLoader进行加载。因此,插件可以提供任意功能,而不仅限于上面说的插件。 插件扩展应用包括4个步骤 1、定义插件的接口集(实际上是只有虚函数的一个类) 2、Q_DECLARE_INTERFACE宏告诉meta-object

文档评论(0)

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

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

1亿VIP精品文档

相关文档