如何使用 Qt Creator 的向导建立和编写一个控件插件,下面是步骤。
一、生成控件插件
向导生成的项目,New Project -> Other Project -> Qt Custom Designer Widget -> Custom Widget List 中输入 Widget Class 名字,如果只有一个 Widget,例如 xxx,则源码包含两部分,一是 xxx 类,一是 xxxplugin 类。
- xxx 类:空的,仅具有基本结构。集成自 QWidget ,具有 Q_OBJECT 宏,有构造函数。是需要后续代码工作的。
- xxxplugin 类:结构是完整的,仅需要填入相关的信息。
二、编写 xxx 类实现代码
到此步,可以在 xxx 类中写最基本的代码,然后编译,生成的 dll 就可以在 Designer 发现控件和拖放控件了。但是,此时控件还没有属性可供设置和读取。
三、给自定义控件添加属性
还需要在自定义控件类声明中添加 QDESIGNER_WIDGET_EXPORT 宏用以暴露接口,需要头文件 <QtDesigner/QtDesigner>
#include <QtDesigner/QtDesigner> class QDESIGNER_WIDGET_EXPORT LED : public QWidget { };
另,
- Q_PROPERTY 可以将属性暴露出来
- Q_ENUMS(InputMode) 和 enum InputMode{ mode1, mode2}; 配合起来供选择
四、构建
构建 Designer plugin 只需要构建 release 版本。
前三步可以在Designer 中使用,如果要在 Creator 中使用,则需要参见下一步。
编译器需要和 Creator 被编译时的编译器保持一致,这点非常重要。
五、Creator 中使用
文件部署需要放置 *.h *.lib *dll。参见前文 《Qt5 自定义 Widget 控件 LED(插件)》。
延申阅读:
- VS2017+QT一个dll中包含多个插件
https://blog.csdn.net/baidu_33662202/article/details/89132769