qt5制作插件注意事项

.pro文件

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
#$$PWD 表示.pro文件所在的目录
DESTDIR = $$PWD/bin  # 用于指明编译的目标文件的输出路径
# 引入opencv相关文件
INCLUDEPATH+=E:\opencv3.4.7\opencv\opencv-build\install\include
LIBS +=E:\opencv3.4.7\opencv\opencv-build\lib\libopencv_*.a

接口类

#define QTPLUGIN_ISERIALPORT_IID "ewhales.plugin.interface.cvplugininterface"
# 此宏用于把标识符与类名接口关联起来。这个标识符是唯一的。
#这个宏通常在被放到一个类被定后的位置。
Q_DECLARE_INTERFACE(接口类名,  QTPLUGIN_ISERIALPORT_IID)

插件功能头文件

基础接口类和QObject类,并实现接口类的所有抽象方法。

#if QT_VERSION >= 0x050000
	# 此宏告诉Qt哪些接口被类实例了
    Q_INTERFACES(抽象接口名)
    #这个宏需要通过对象声明被实例化接口的IID,并且要引用包含元数据内容的文件
    Q_PLUGIN_METADATA(IID QTPLUGIN_ISERIALPORT_IID)
#endif // QT_VERSION >= 0x050000

插件功能源文件

# 如果qt版本小于5.0,会使用Q_EXPORT_PLUGIN2宏
#if QT_VERSION < 0x050000
Q_EXPORT_PLUGIN2(QTPLUGIN_ISERIALPORT_IID, 插件类名)
#endif // QT_VERSION < 0x050000

插件新添ui文件

Qt额外增加一个ui文件,编译后会在build文件夹里面生成ui_xxx.h的文件。这里的xxx就是你刚刚添加的ui文件时的文件名。

在你需要添加此ui文件的类的头文件添加如下代码:

#include "ui_xxx.h"
# XXX类名是在ui_xxx.h文件末尾里面的namespace Ui里面的类名
namespace Ui {
    class XXX;
}

private:
    Ui::XXX *ui;

你还需要添加此ui文件的类的源文件添加如下代码:

void 类名::setupUi(QWidget *parent){
    ui = new Ui::XXX;
    ui->setupUi(parent);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值