找回密码
 立即注册
收起左侧

Qt编写自定义控件插件开放动态库dll使用(永久免费)

7
回复
1397
查看
[复制链接]
累计签到:7 天
连续签到:1 天
来源: 2019-4-10 22:35:06 显示全部楼层 |阅读模式
本帖最后由 liudianwu 于 2019-6-8 15:01 编辑

一、前言
这套控件陆陆续续完善了四年多,目前共146个控件,除了十几个控件参考网友开源的代码写的,其余全部原创,在发布之初就有打算将动态库开放出来永久免费使用,在控件比较完善的今天抽了半天时间编译了多个qt版本的动态库,目前已经有26个版本,其中包括了linux版本,和头文件一起打包放在百度网盘。

二、控件介绍
1. 超过146个精美控件,涵盖了各种仪表盘、进度条、进度球、指南针、曲线图、标尺、温度计、导航条、导航栏,flatui、高亮按钮、滑动选择器、农历等。远超qwt集成的控件数量。
2. 每个类都可以独立成一个单独的控件,零耦合,每个控件一个头文件和一个实现文件,不依赖其他文件,方便单个控件以源码形式集成到项目中,较少代码量。qwt的控件类环环相扣,高度耦合,想要使用其中一个控件,必须包含所有的代码。
3. 全部纯Qt编写,QWidget+QPainter绘制,支持Qt4.6到Qt5.12的任何Qt版本,支持mingw、msvc、gcc等编译器,支持任意操作系统比如windows+linux+mac+嵌入式linux等,不乱码,可直接集成到Qt  Creator中,和自带的控件一样使用,大部分效果只要设置几个属性即可,极为方便。
4. 每个控件都有一个对应的单独的包含该控件源码的DEMO,方便参考使用。同时还提供一个所有控件使用的集成的DEMO。
5. 每个控件的源代码都有详细中文注释,都按照统一设计规范编写,方便学习自定义控件的编写。
6. 每个控件默认配色和demo对应的配色都非常精美。
7. 超过130个可见控件,6个不可见控件。
8. 部分控件提供多种样式风格选择,多种指示器样式选择。
9. 所有控件自适应窗体拉伸变化。
10.  集成自定义控件属性设计器,支持拖曳设计,所见即所得,支持导入导出xml格式。
11. 自带activex控件demo,所有控件可以直接运行在ie浏览器中。
12. 集成fontawesome图形字体+阿里巴巴iconfont收藏的几百个图形字体,享受图形字体带来的乐趣。
13. 所有控件最后生成一个dll动态库文件,可以直接集成到qtcreator中拖曳设计使用。

三、SDK下载
- SDK下载链接:https://pan.baidu.com/s/1tD9v1YPfE2fgYoK6lqUr1Q 提取码:lyhk
- 自定义控件+属性设计器欣赏:https://pan.baidu.com/s/1l6L3rKSiLu_uYi7lnL3ibQ 提取码:tmvl
- 下载链接中包含了各个版本的动态库文件,所有控件的头文件,使用demo。
- 自定义控件插件开放动态库dll使用(永久免费),无任何后门和限制,请放心使用。
- 目前已提供26个版本的dll,其中包括了qt5.12.3 msvc2017 32+64 mingw 32+64 的。
- 不定期增加控件和完善控件,不定期更新SDK,欢迎各位提出建议,谢谢!
- widget版本(QQ:517216493)qml版本(QQ:373955953)三峰驼(QQ:278969898)。
- 涛哥的知乎专栏 Qt进阶之路 https://zhuanlan.zhihu.com/TaoQt
- 欢迎关注微信公众号【高效程序员】,C++/Python、学习方法、写作技巧、热门技术、职场发展等内容,干货多多,福利多多!

四、使用方法
1:快速预览所有控件方法
第一步:前提是qt版本、编译器类型、编译器版本、编译器位数必须完全一致。
第二步:找到qt安装目录的库所在的bin目录,同级有个plugins文件夹,plugins文件夹下有个designer目录,将对应插件文件例如 qt_5_7_1_msvc2013_32.dll 放到此目录即可。
第三步:双击bin目录下的designer.exe,打开提供的demo.ui,即可看到效果。或者新建个空白UI然后从左边的控件栏里面拖动过去。

2:动态库使用方法
第一步:插件法的自定义控件使用,务必保证Qt版本+编译器+位数完全一致。
第二步:将对应的quc.dll和quc.lib(MSVC编译器才有)集成到项目中。
第三步:使用到哪个控件,只需要将对应控件的头文件集成到项目中即可。
第四步:项目的pro文件加入代码
说明:本sdkdemo下的dll是MSVC2013 32位+Qt5.7.1版本的。可自行替换成自己编译器编译出来的文件。
  1. INCLUDEPATH += $PWD/sdk
  2. CONFIG(release, debug|release){
  3. LIBS        += -L$PWD/sdk/ -lquc
  4. } else {
  5. unix {LIBS  += -L$PWD/sdk/ -lquc}
  6. else {LIBS  += -L$PWD/sdk/ -lqucd}
  7. }
复制代码


五、效果图

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
参与人数 4人气 +6 收起 理由
geemi + 2
lasyman + 1 必须支持!
Sunrise_Qt + 2 对我帮助很大!
linux_rookie + 1 必须支持!

查看全部评分总评分 : 人气 +6

回复

使用道具 举报

尚未签到

2019-4-11 08:53:30 显示全部楼层
学习了,永远支持大佬
回复 支持 反对

使用道具 举报

累计签到:2 天
连续签到:1 天
2019-4-13 11:57:25 显示全部楼层
赞赞赞!刘总太厉害了!学习学习
回复 支持 反对

使用道具 举报

累计签到:270 天
连续签到:1 天
2019-4-18 10:30:29 显示全部楼层

学习了,永远支持大佬
回复 支持 反对

使用道具 举报

累计签到:17 天
连续签到:3 天
2019-5-6 16:52:21 显示全部楼层
支持大佬,学习学习
请问大佬,这个navlistview怎么设置数据的,格式是什么?谢谢

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

累计签到:7 天
连续签到:1 天
2019-5-6 21:30:33 显示全部楼层
lasyman 发表于 2019-5-6 16:52
支持大佬,学习学习
请问大佬,这个navlistview怎么设置数据的,格式是什么?谢谢
...
  1. ui->navListView->setSeparateHeight(1);
  2.     ui->navListView->setSeparateColor(QColor(40, 43, 51));

  3.     ui->navListView->setChildBgNormalColor(QColor(40, 43, 51));
  4.     ui->navListView->setChildBgSelectedColor(QColor(20, 20, 20));
  5.     ui->navListView->setChildBgHoverColor(QColor(20, 20, 20));
  6.     ui->navListView->setChildTextNormalColor(QColor(180, 180, 180));
  7.     ui->navListView->setChildTextSelectedColor(QColor(250, 250, 250));
  8.     ui->navListView->setChildTextHoverColor(QColor(255, 255, 255));

  9.     ui->navListView->setParentBgNormalColor(QColor(57, 61, 73));
  10.     ui->navListView->setParentBgSelectedColor(QColor(78, 83, 102));
  11.     ui->navListView->setParentBgHoverColor(QColor(78, 83, 102));
  12.     ui->navListView->setParentTextNormalColor(QColor(250, 250, 250));
  13.     ui->navListView->setParentTextSelectedColor(QColor(250, 250, 250));
  14.     ui->navListView->setParentTextHoverColor(QColor(250, 250, 250));

  15.     ui->navListView->setExpendMode(NavListView::ExpendMode_SingleClick);

  16.     //设置节点数据,格式 标题|父节点标题(父节点为空)|是否展开|提示信息|左侧图标
  17.     QStringList items;
  18.     items.append("主界面||0|正常|");
  19.     items.append("地图监控|主界面|||0xf03e");
  20.     items.append("视频监控|主界面|||0xf03d");
  21.     items.append("设备监控|主界面|||0xf108");

  22.     items.append("系统设置||0||");
  23.     items.append("防区信息|系统设置|||0xf0e8");
  24.     items.append("位置调整|系统设置|||0xf25a");
  25.     items.append("地图编辑|系统设置|||0xf03e");

  26.     items.append("警情查询||0|120|");
  27.     items.append("记录查询|警情查询|||0xf272");
  28.     items.append("图像查询|警情查询|||0xf03e");
  29.     items.append("视频查询|警情查询|||0xf03d");
  30.     items.append("数据回放|警情查询|||0xf080");

  31.     items.append("帮助文档||1|1024|");

  32.     ui->navListView->setItems(items.join(","));
  33.     ui->navListView->setCurrentRow(2);
复制代码
回复 支持 反对

使用道具 举报

累计签到:17 天
连续签到:3 天
2019-5-7 08:47:18 显示全部楼层

感谢大佬回复,
回复 支持 反对

使用道具 举报

尚未签到

2019-6-12 08:38:37 显示全部楼层
非常棒的资源,请收下偶的膝盖
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册