liudianwu 发表于 2019-4-10 22:35:06

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

本帖最后由 liudianwu 于 2019-6-22 20:28 编辑

一、前言
这套控件陆陆续续完善了四年多,目前共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等,不乱码,可直接集成到QtCreator中,和自带的控件一样使用,大部分效果只要设置几个属性即可,极为方便。
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/1A5Gd77kExm8Co5ckT51vvQ 提取码:877p
- 下载链接中包含了各个版本的动态库文件,所有控件的头文件,使用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版本的。可自行替换成自己编译器编译出来的文件。
INCLUDEPATH += $PWD/sdk
CONFIG(release, debug|release){
LIBS      += -L$PWD/sdk/ -lquc
} else {
unix {LIBS+= -L$PWD/sdk/ -lquc}
else {LIBS+= -L$PWD/sdk/ -lqucd}
}

五、效果图

zhuling】9026 发表于 2019-4-11 08:53:30

学习了,永远支持大佬

JIMMYCrouse 发表于 2019-4-13 11:57:25

赞赞赞!刘总太厉害了!学习学习

张飞Dear 发表于 2019-4-18 10:30:29


学习了,永远支持大佬

lasyman 发表于 2019-5-6 16:52:21

支持大佬,学习学习
请问大佬,这个navlistview怎么设置数据的,格式是什么?谢谢

liudianwu 发表于 2019-5-6 21:30:33

lasyman 发表于 2019-5-6 16:52
支持大佬,学习学习
请问大佬,这个navlistview怎么设置数据的,格式是什么?谢谢
...

ui->navListView->setSeparateHeight(1);
    ui->navListView->setSeparateColor(QColor(40, 43, 51));

    ui->navListView->setChildBgNormalColor(QColor(40, 43, 51));
    ui->navListView->setChildBgSelectedColor(QColor(20, 20, 20));
    ui->navListView->setChildBgHoverColor(QColor(20, 20, 20));
    ui->navListView->setChildTextNormalColor(QColor(180, 180, 180));
    ui->navListView->setChildTextSelectedColor(QColor(250, 250, 250));
    ui->navListView->setChildTextHoverColor(QColor(255, 255, 255));

    ui->navListView->setParentBgNormalColor(QColor(57, 61, 73));
    ui->navListView->setParentBgSelectedColor(QColor(78, 83, 102));
    ui->navListView->setParentBgHoverColor(QColor(78, 83, 102));
    ui->navListView->setParentTextNormalColor(QColor(250, 250, 250));
    ui->navListView->setParentTextSelectedColor(QColor(250, 250, 250));
    ui->navListView->setParentTextHoverColor(QColor(250, 250, 250));

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

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

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

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

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

    ui->navListView->setItems(items.join(","));
    ui->navListView->setCurrentRow(2);

lasyman 发表于 2019-5-7 08:47:18

liudianwu 发表于 2019-5-6 21:30


感谢大佬回复,:handshake

geemi 发表于 2019-6-12 08:38:37

非常棒的资源,请收下偶的膝盖

gaowen9304 发表于 2019-6-20 15:44:23

学习了,永远支持大佬

javsky 发表于 2019-6-22 16:30:31

百度网盘链接失效了。

leelx 发表于 2019-7-17 16:18:27

学习了,永远支持大佬

look_wt 发表于 2019-7-18 08:34:30

请问 使用控件SDK时 一直报错 G:\OneDrive\QT_project\test\untitled1\mainwindow.cpp:10: error: undefined reference to `RoundLogo::RoundLogo(QWidget*)' 这是什么问题 如何解决

goldfather 发表于 2019-8-12 23:03:19

大佬,收下我的膝盖:handshake

waspxyz 发表于 2019-10-6 21:57:03

本帖最后由 waspxyz 于 2019-10-6 22:01 编辑

你好,运行sdkdemo程序时提示错误:
21:50:12: Starting C:\SmartProject\build-sdkdemo-Desktop_Qt_5_12_3_MSVC2017_32bit-Debug\debug\sdkdemo.exe ...
QWidget: Must construct a QApplication before a QWidget
21:50:15: 程序异常结束。


问题找到了,是Debug用了Release库,大佬能提供Debug的编译库文件吗?谢谢

liudianwu 发表于 2019-10-7 22:15:02

waspxyz 发表于 2019-10-6 21:57
你好,运行sdkdemo程序时提示错误:
21:50:12: Starting C:\SmartProject\build-sdkdemo-Desktop_Qt_5_12_3 ...

目前不提供debug版本的动态库,太多了,Qt几百个版本,可以考虑赞助获取完整源码自行编译。

waspxyz 发表于 2019-10-9 21:59:14

你好,完整源码怎么获取?

liudianwu 发表于 2019-10-10 10:23:10

waspxyz 发表于 2019-10-9 21:59
你好,完整源码怎么获取?

需要赞助才能获取,具体加Q517216493
页: [1]
查看完整版本: Qt编写自定义控件插件开放动态库dll使用(永久免费)