Qt使用自定义控件(库文件调用法)
一. 使用自定义控件需要的条件:
-
拥有自定义控件的头文件(.h)和库文件
-
知道库文件是用什么编译器编译出的;
-
举例:
A使用MSVC 2015 64bit编译器生产出自定义电池图标控件QCustomBattery;
A将生成的qcustombattery.h、qcustombatteryd.dll、qcustombattery.dll交付给你使用。
- 你需要做的:在使用控件时也需要用MSVC 2015 64bit编译器编译你的工程。(你的工程使用的编译器兼容编译自定义控件的编译器。(工程编译器 >= 自定义控件编译器)
Tips:库文件分类:
windows静态库:xxx.lib
windows动态库:xxx.dll
linux动态库:libxxx.so
linux静态库:libxxx.a
二. 使用前进行的工作
2.1 查看你的Qt Creator的编译版本
**步骤:**打开Qt Creator —> 帮助 —> About Qt Creator,即可查看到。
Based on Qt 5. 15.2(MSVC 2019,64bit) 意思是我们现在用的Qt creator是使用MSVC 2019 64bit编译出来的。
图 1 About Qt Creator
2.2 将控件集成到Qt Creator的设计界面
由于我们在Windows平台使用的Qt Creator时用MSVS 2019 64bit编译出来的,我们要想将自定的控件集成到Qt Creator中则需要:
(1)将qcustombatteryd.dll和将 qcustombattery.dll放入放入Qt的安装目录:…Tools\QtCreator\bin\plugins\designer
要想让插件在Qt Creator的Ui设计器里正常显示,编译插件项目的编译器必须与编译Qt Creator的编译器一致,否则即使将编译后生成的DLL文件复制到…Tools\QtCreator\bin\plugins\designer 目录下,Qt Creator的Ui设计器的组件面板也不会显示自定的控件。
本文自定义控件使用MSVC 2015 64bit编译得到了可以向上兼容MSVC 201964 bit编译的Qt Creator。故可以在Qt Creator中显示。
(2)打开Qt Creator随便新建一个工程,切换到设计即可看到自定义的控件。
(3)将其他编译器编译的dll文件放入对应类库。
提示:此步骤非必要步骤,可忽略
假设你有MSVC 2015 64 bit和MingW 81_32位的控件。你可以将MSVC 2015 64 bit编译出来qcustombatteryd.dll和将 qcustombattery.dll文件放入
…\Qt5.15.0\5.15.0\msvc2015_64\bin
…\Qt5.15.0\5.15.0\msvc2015_64\plugins\designer
这样就把控件放入了msvc2015_64环境的类库了。我们打开msvc2015_64\bin文件下的designer.exe也可以看到自定义控件了。
MingW 81_32环境也同理。
三 自定义控件的使用
-
配置编译环境
在建立工程时编译环境的选择时,选择与DLL文件相对应的编译环境。
举例:自定义的控件使用的MingW81_32编译器编译生成的,那么你PlugingTest工程同样选择MingW81_32编译器作为编译环境。
-
添加包含路径
我们在项目工程中的.pro文件中加入
INCLUDEPATH += $$PWD/sdk/include #头文件包含路径 CONFIG(debug, debug|release){ LIBS += -L$$PWD/sdk/ -lqcustombatteryplugind #debug运行库 } else:CONFIG(release, debug|release) { LIBS += -L$$PWD/sdk/ -lqcustombatteryplugin #release运行库 }
-
将自定义的控件拖入到设计的窗体
-
运行
成功运行