Qt自定义控件
参考:
https://www.cnblogs.com/georgeOfChina/p/7773141.html
Qt实现自定义控件能够以插件的方式加载到Qt设计师_qt自定义控件-CSDN博客
1、打开QtCreator,这里使用的是Qt5.10.1+MSVC2015_32位的环境。
新建项目,其他项目->Qt4设计师自定义控件->设置类名Test【大写开头】,确定,此时无ui文件
2、删除Test.h和Test.cpp,右键工程添加Qt->Qt设计师界面类,选择Widget模板,改名字为Test,此时就有ui文件了
3、代码初始化
在Test.h中添加头文件
#include <QtUiPlugin/QDesignerExportWidget>
在类名前面加上QDESIGNER_WIDGET_EXPORT宏

4、打开ui文件,设计想要的界面

这里拖入3个checkbox,功能是1勾选上2,3也勾选,1不勾选2,3也不勾选
5、代码实现
进入第一个checkbox的clik回调
void Test::on_checkBox_clicked() { if(ui->checkBox->isChecked()) { ui->checkBox_2->setChecked(true); ui->checkBox_3->setChecked(true); } else { ui->checkBox_2->setChecked(false); ui->checkBox_3->setChecked(false); } }
6、编译,在对应的文件夹生成testplugin.dll和testplugin.lib
7、得到最后的文件
testplugin.dll、
testplugin.lib、
test.h
如何使用呢?
1、把testplugin.dll放在Qt库路径下
D:\Qt5.10.1\5.10.1\msvc2015\plugins\designer
2、使用对应版的designer工具新建工程,可以看见ui中有了Test控件

注意:需要对应版本的
3、把这个控件拖到界面就ok了

注意:
1.以上方法只能通过对应版本的designer打开ui才有新控件,使用QtCreator打开是没有的,需要编译QtC版本的Qt重新编译,然后放在:
D:\Qt5.10.1\Tools\QtCreator\bin\plugins\designer路径下QtC才支持控件。可通过点击“工具”—>“Form Editor"—>”About Qt Designer Plugins“,查看其他控件的加载情况
2.在自定义控件构造函数里通过qss设置背景色时,在使用控件工程失效;需要重写paintEvent里通过QPainter重绘才生效
3.只需要将dll放在D:\Qt5.10.1\5.10.1\msvc2015\plugins\designer,不需要放啥lib,打开designer就能打开;
使用的话,才需要放,当然如果自己在pro里使用也不需要。
长风破浪会有时,直挂云帆济沧海!
可通过下方链接找到博主
https://www.cnblogs.com/judes/p/10875138.html