.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);
}