1 创建QtDesigner自定义控件工程
打开Qt Creator,创建一个Qt 设计师自定义控件,如下图所示:
![](/pic/008.png)
根据向导提示,建立一个新类,取名“Test"(注:首字母大写,不能全小写,不然后面会出错),一直点击”下一点“,完成工程创建;
![](/pic/007.png)
2 编辑工程代码
在新建的工程中,Test 类没有ui界面文件,我们要手动添加上去,如果没有ui界面文件,工程编译也可以通过,但该控件添加到ctreator后,一打开desinger工具的时候就会直接挂掉;所以,我们可以把原先的 Test 类的 test.c
和 test.h
删除掉,重新添加一个Test类;
![](/pic/006.png)
![](/pic/005.png)
新建一个Test类(类名一点要和之前一样),如下:
![](/pic/004.png)
![](/pic/003.png)
![](/pic/002.png)
在工程头文件 test.h
中添加 #include <QtUiPlugin/QDesignerExportWidget>
,在类名前添加 QDESIGNER_WIDGET_EXPORT
宏。如下图:
![](/pic/001.png)
3 生成库文件
- 选择生成
Rlease
版本 - 执行 qmake
- 构建该项目
完成这三步就会在对应目录下生成 libslidingbarplugin.so
文件;
4 部署插件(控件)
把上一步生成的 libslidingbarplugin.so
文件分别拷贝到 QT 库的 designer 路径下和 QT 的 IDE 工具的 designer 路径下;
- QT库的designer库路径:
/usr/local/qt5.9.2/5.9.2/gcc_64/plugins/designer
- QT库的IDE路径:
/usr/local/qt5.9.2/Tools/QtCreator/lib/Qt/plugins/designer
Qt重启生效;
5 使用插件
- 新建一个工程;
- 打开*.ui,在左侧的控件栏的最下面会出现我们前面编译的自定义插件,直接把它拖拽到ui界面;
- 在该工程所在文件目录中:新建include文件夹,将前面的插件头文件 test.h 放在该 include 文件夹中;新建 lib 文件夹,将前面生成的 libslidingbarplugin.so 静态库放在此 lib 文件夹中;
- 打开测试工程的*.pro文件。添加相应的 include 路径和 lib 路径:
LIBS += $$PWD/lib/testplugin.lib INCLUDEPATH += $$PWD/include