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文件放到 plugins\styles的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/");的方式指定插件的位置。(不同于默认的目录)

猜你喜欢

转载自www.cnblogs.com/czwlinux/p/12442794.html
今日推荐