Qt Gui 第二十一章
Posted czwlinux
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt Gui 第二十一章相关的知识,希望对你有一定的参考价值。
一、创建插件及添加插件
1、创建风格插件
#include <QStylePlugin> class BronzeStylePlugin : public QStylePlugin { public: QStringList keys() const; QStyle *create(const QString &key); };
继承风格插件的接口,并实现keys跟create这两个方法;
QStringList BronzeStylePlugin::keys() const { return QStringList() << "Bronze"; } QStyle *BronzeStylePlugin::create(const QString &key) { if (key.toLower() == "bronze") return new BronzeStyle; return 0; } Q_EXPORT_PLUGIN2(bronzestyleplugin, BronzeStylePlugin)
keys为了该插件导出的时候提供的风格的名字;
当作为插件导出的时候都需要在cpp的末尾添加 : Q_EXPORT_PLUGIN2(插件的名字, 导出的类名)
在pro中,有两个不一样的地方:
TEMPLATE = lib
CONFIG += plugin
template如果是可执行程序则等于app,这里是作为插件的方式,所以等于lib
然后config也是增加: plugin
构建之后则会产生dll文件和.a文件;这两个就是最后生成的插件;
2、使用该插件
调用插件的方法
之前咱们使用bronzestyle风格的时候:
#include "bronzestyle.h"
然后再使用之前调用 QApplication::setStyle(new BronzeStyle);
当使用插件的方式时候,上面代码都不需要;
只需要: QApplication::setStyle("Bronze");
插件的放置位置:
方法一:将dll跟.a文件放到 pluginsstyles的qt目录下面,具体的plugins在哪个位置,可以通过QApplication::libraryPaths()看到;
方法二:在.exe同目录下,新建styles目录,然后将dll跟.a文件放到styles目录下
方法三:假设我在:E:/studydata/qt/qt4src/chap21/bronze/目录下新建了一个styles目录,并将dll跟.a文件放在styles中;则可以通过QApplication::addLibraryPath("E:/studydata/qt/qt4src/chap21/bronze/");的方式指定插件的位置。(不同于默认的目录)
以上是关于Qt Gui 第二十一章的主要内容,如果未能解决你的问题,请参考以下文章