首页| 论坛| 消息
主题:苦心钻研十几载/Qt自定义控件开发先行者/国内自定义控件开发第X人/原创207个自定义控件/集成到qtc开发环境
liudianwu发表于 2025-07-08 11:32
## 一、前言说明
从十几年前做Qt自定义控件开发至今,陆陆续续开发过两百多个自定义控件,一直持续更新到现在的Qt6.10版本,全部正常编译使用,从最初的Qt4.7.0支持到现在,没有坚强的毅力是支撑不到今天的。很多人问写自定义控件难不难,其实一点都不难,掌握了qpainter的技巧,写起来行云流水,就跟吃饭一样简单。那么问题来了,如何学会qpainter,这个必须一点点慢慢来,核心就是把qpainter头文件中的draw开头的一堆函数全部自己试一遍,然后多练习多参考,比如参考本人写的自定义控件大全207个控件如何绘制的,其实只需要参考十几年就好了,大差不差大致雷同。

控件写出来以后,其实很多人希望是集成到qtc中拖曳开发使用,这个有一定的难度,无数人就卡死在这里,问题就出在,Qt有几百个版本,全部不兼容,必须用你的qtc的关于对话框中显示的qt版本位数编译器,完全一致才行,小版本兼容,比如5.9.0和5.9.1是兼容的,大版本都不兼容,比如5.9和5.10都不兼容,而qtc有几十个版本至少,甚至你安装的qtc往往和你安装的qt版本不一致,windows上qtc还都是msvc编译的,如果你用的mingw编译器,那肯定放不进去的。

其实集成到qtc中只是为了方便拖曳控件到界面中,真正编译的时候,还是需要手动指定链接库路径的,拖曳只是开发阶段可用,编译需要链接到正确的库才能正常编译和运行,运行期间肯定要带上对应的控件的动态库,所以这里又存在版本问题,放到qtc中的是一个版本,链接和运行的又是另外一个版本。而且往往还都是不同的版本,库文件千万不能混淆,不然无法运行。如果没办法集成到qtc中也没关系,拖一个qwidget到界面上,鼠标右键提升为对应控件即可,然后编译链接也能正常运行,只是没办法拖曳简单。

Qt自定义控件是一套纯QtWidget代码编写的自定义控件大全组件,简称quc,是一套和qwt类似的自定义控件插件。不仅控件数量远超qwt以及其他第三方的控件组件,每个控件都有独立的使用demo并且注释详细,非常适合初学者和进阶者。

## 二、效果图

## 三、相关代码
```cpp
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
greaterThan(QT_MAJOR_VERSION, 5): QT += core5compat

TARGET= sdkdemo
TEMPLATE= app
SOURCES += main.cpp
#指定可执行文件目录 放到这里省了拷贝动态库动作 专为小白懒人考虑
DESTDIR = $$PWD/quc

#一次性引入自定义控件的所有头文件 懒得一个个拷贝
INCLUDEPATH += $$PWD/quc/include

#不同的构建套件 debug release 依赖不同的链接库
CONFIG(debug, debug|release){
LIBS += -L$$PWD/quc/ -lqucd
} else {
LIBS += -L$$PWD/quc/ -lquc
}

```

## 四、相关地址
1. 国内站点:[https://gitee.com/feiyangqingyun](https://gitee.com/feiyangqingyun)
2. 国际站点:[https://github.com/feiyangqingyun](https://github.com/feiyangqingyun)
3. 个人作品:[https://blog.csdn.net/feiyangqingyun/article/details/97565652](https://blog.csdn.net/feiyangqingyun/article/details/97565652)
4. 文件地址:[https://pan.baidu.com/s/1ZxG-oyUKe286LPMPxOrO2A](https://pan.baidu.com/s/1ZxG-oyUKe286LPMPxOrO2A) 提取码:o05q文件名:bin_quc.zip

## 五、功能特点
1. 超过207个精美控件并持续不断迭代更新升级,种类超多,控件类型极其丰富。
2. 涵盖了各种仪表盘、进度条、进度球、指南针、曲线图、标尺、温度计、导航条、导航栏,flatui、高亮按钮、滑动选择器、农历、广告轮播、饼状图、环形图、时间轴、拓展控件、增强控件等。
3. 每个类都是独立的一个.h头文件和.cpp实现文件组成,零耦合,不依赖其他文件,方便单个控件独立出来以源码形式集成到项目中,方便直观。
4. 控件数量远超其他第三方控件库比如qwt集成的控件数量,使用方式也比其简单友好零耦合。
5. 支持任意Qt版本,亲测Qt4.6到Qt6.7的所有版本,全部纯Qt编写,QWidget+QPainter绘制。
6. 支持任意编译器,包括但不限于mingw、msvc、gcc、clang等编译器。
7. 支持任意操作系统,包括但不限于windows、linux、mac、android、uos、银河麒麟、各种国产linux、嵌入式linux、树莓派、香橙派、全志H3等。
8. 支持编译生成设计师插件,可直接集成到QtCreator的控件栏中,和自带的控件一样使用,大部分效果只要设置几个属性即可,极为方便。
9. 支持编译生成独立的非插件形式的动态库文件,体积小,比如嵌入式linux不支持designer只需要动态库的形式。
10. 每个控件都有一个单独的完整的使用demo,方便参考学习单个控件使用,非常适合初学者。
11. 提供一个所有控件使用的集成的example,方便快速查看所有控件的效果。
12. 支持直接源码集成到example的方式

浏览大图
下一页 (1/2)
回帖(1):
1楼:奈斯奈斯,我辈学习的楷模

全部回帖(1)»
最新回帖
收藏本帖
发新帖