注意事项1

方案1:使用Qt自带的设计师工具设计

方案2: 改现成的pro

经过测试方案2不可再QtCreator中展示,所以放弃。 方案1创建时选择ui文件或者手绘都不影响使用。

注意事项2

想要设计师工具设计的控件在QtCreator中展示时,需要注意一定要选择与QtCreator相同版本的编译器去编译,然后再用自己版本的编译器编译,两者放在相应的位置即可。

如图,要使用Qt 6.2.3 (MSVC 2019, 64 bit)的编译器才可在QtCreator中展示。(帮助》About .. 进行查看)

Qt自定义控件 - 图1

使用Release编译生成的库,放在 X:\Qt\Tools\QtCreator\bin\plugins\designer 目录即可。

然后更改为自己版本编译器去编译。如图,使用的是Qt 5.12.2 (MSVC 2019, 64 bit)的编译器

Qt自定义控件 - 图2

修改对应的.h文件

  1. #include <QWidget>
  2. //新增
  3. #if defined Q_BATTERY
  4. # define Q_EXPORT Q_DECL_EXPORT
  5. #else
  6. # define Q_EXPORT
  7. #endif
  8. //QT_BEGIN_NAMESPACE
  9. //namespace Ui { class QBattery; }
  10. //QT_END_NAMESPACE
  11. class Q_EXPORT QBattery : public QWidget
  12. {

然后在.pro文件中添加

<font style="color:#800080;">DEFINES</font><font style="color:#c0c0c0;"> </font>+=<font style="color:#c0c0c0;"> </font>Q_BATTERY

使用Release编译生成的库,Debug编译生成的库和项目头文件,拷贝到自定义文件夹里,调用时添加即可。

Qt自定义控件 - 图3

注意事项3

使用时要注意相同版本编译器,并且在DebugRelease中要导入相应的.dll文件,否则程序不可使用。

导入到工程时,直接添加外部库的方式即可。