qt中自定义控件编译成动态库
背景:已经实现一个自定义控件来展示电池电量组件,现在想把组件编译成一个动态库供其他工程方便使用。
环境:
QT版本5.14.1
QT Creator版本4.11.1
编译器使用Qt 5.14.2 MinGW 64-bit
具体步骤如下:
创建自定义控件编译动态库工程
选择编译器,这里选择Qt 5.14.2 MinGW 64-bit
这里要编译的自定义控件类名为MyBattery
到这里如上已经生成了工程目录,不过这里的MyBattery实现都为空
接下来需要把具体实现的mybattery.cpp和mybattery.h
mybattery.h文本进行如下修改
将cpp和h文件拷贝到该工程进行覆盖
编译构建,生成的dll和a文件
中间步骤
将上述工程编译生成的mybatteryplugin.dll和libmybatteryplugin.a新拷贝到一个临时目录include下面,再把mybattery.h头文件也拷贝到include目录下
最后把mybatteryplugin.dll拷贝到qt和qtcreator的plugins\designer目录下:
(如下是qt和qt creator目录)
E:\Tools\qt\Qt5\Tools\QtCreator\bin\plugins\designer
E:\Tools\qt\Qt5\5.14.2\mingw73_64\plugins\designer
创建使用动态库构建新的项目
如上步骤自定义控件的dll和a文件已经生成,接下来使用来验证能否正常使用
创建一个工程,这里步骤忽略
下面是添加外部库和头文件步骤,不然工程没法识别
这里选择库的目录,这里为include目录
即可正确使用 OK