本系列主要使用Qt painter来实现一些基础控件。主要是对平时自行编写的一些自定义控件的总结。

为了简洁。低耦合,我们尽量不使用图片,qrc,ui等文件,而只使用c++的.h和.cpp文件。

由于个人水平有限,学习Qt时间不长,所以代码中出现BUG,不够优雅以及有待改进部分,还请见谅和提出意见。

本项目所有代码在Qt5.10以上均测试通过,理论上Qt 5版本应该都支持。

本系列所有程序,已经放在了github的项目上,项目地址:https://github.com/LOMOoO/CustomControls-Qt

(一) 圆形进度条

示例图如上,该自定义控件主要特点有:

1.纯QPaint绘制,不包括图片等文件;

2.多种自定义控制,非常灵活;

3.能够自适应大小,不需要手动调整;

4.支持动画效果。

该圆形进度条值变化时,会有动画效果,我们还可以使用Qt的动画属性,让动画效果更加优雅,譬如:

QPropertyAnimation* animation=new QPropertyAnimation(this,"_value");
animation->setDuration();
animation->setStartValue(_value);
animation->setEndValue(value);
animation->setEasingCurve(QEasingCurve::OutQuad);
animation->start();

实际上,我们还可以对显示效果,进行多种自定义设置,例如下

//设置初始角度,顺时针逆时针
void setdefault(int,bool);
//设置外圈宽度
void setOutterBarWidth(float);
//设置内圈宽度
void setInnerBarWidth(float);
//设置范围
void setRange(float, float);
//设置当前值
void setValue(float);
//设置外圈颜色
void setOutterColor(const QColor&);
//设置内圈渐变色
void setInnerColor(const QColor&,const QColor&);
void setInnerColor(const QColor&);
//设置默认文字颜色
void setDefaultTextColor(const QColor&);
//设置控制命令
void setControlFlags(int);
//设置显示数字精度
void setPrecision(int);
//设置内圈默认文字样式
inline void setInnerDefaultTextStyle(InnerDefaultTextStyle style){_innerDefaultTextStyle=style;}

如果还想进一步控制,你可以选择自行修改源代码。更多部分,请参考github上的源代码

Qt自定义控件系列(一) --- 圆形进度条的更多相关文章

  1. Qt之QRoundProgressBar(圆形进度条)

    简述 QRoundProgressBar类能够实现一个圆形进度条,继承自QWidget,并且有和QProgressBar类似的API接口. 简述 详细说明 风格 颜色 字体 共有函数 共有槽函数 详细 ...

  2. Android自定义控件系列之应用篇——圆形进度条

    一.概述 在上一篇博文中,我们给大家介绍了Android自定义控件系列的基础篇.链接:http://www.cnblogs.com/jerehedu/p/4360066.html 这一篇博文中,我们将 ...

  3. Qt第三方圆形进度条-及其改进

    Qt第三方圆形进度条的改进 要实现一个圆形的进度条功能,在网上找到一个比较出名的第三方封装类:QRoundProgressBar,地址:sourceforge 的 QRoundProgressBar  ...

  4. android 自定义控件——(四)圆形进度条

    ----------------------------------↓↓圆形进度条(源代码下有属性解释)↓↓---------------------------------------------- ...

  5. Android 高手进阶,自己定义圆形进度条

    背景介绍 在Android 开发中,我们常常遇到各种各样绚丽的控件,所以,依靠我们Android本身所带的控件是远远不够的,许多时候须要我们自定义控件,在开发的过程中.我们公司遇到了一种须要自己写的一 ...

  6. WPF 实现圆形进度条

    项目中用到圆形进度条,首先就想到使用 ProgressBar 扩展一个,在园子里找到迷途的小榔头给出的思路和部分代码,自己加以实现. 进度小于60显示红色,大于60则显示绿色.效果如下: 基本思路: ...

  7. html5 svg 圆形进度条

    html5 svg 圆形进度条 <!DOCTYPE html> <html lang="en"> <head> <meta charset ...

  8. canvas圆形进度条

    通过定义一个canvas标签, new方法传进ID值,和旋转角度值,即可生成圆形进度条 <!DOCTYPE html> <html lang="en"> & ...

  9. iOS之UI--Quartz2D的入门应用--重绘下载圆形进度条

    *:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...

随机推荐

  1. 解决:SSM框架中普通类调用Service的问题 (转)

    http://blog.csdn.net/gwd1154978352/article/details/73480959

  2. 修改 input / textarea placeholder 属性的颜色和字体大小

    话不多说,直接上代码: input::-webkit-input-placeholder, textarea::-webkit-input-placeholder { color: #666; fon ...

  3. 初学python之感悟

    python的强大有目共睹,现将初学python,觉得其中比较重要的知识罗列如下: 类似于数组的东西:列表.元组.集合.字符串以及字典,这几个东西充分体现了python的强大和逆天. 列表: x=[1 ...

  4. 访问链接出现 ERR_CONTENT_DECODING_FAILED 错误的解决办法

    今天跑一个应用,别人的机器上都是好的,但是本地部署就是不行.访问页面调试工具console总是提示 ERR_CONTENT_DECODING_FAILED 错误. 就是数据表格无法显示,经排查,发现是 ...

  5. linux-centos系统下安装python3.5.4步骤

    查看当前python版本:python -V 查看Python可执行文件位置:which python [root@localhost bin]# which python/usr/bin/pytho ...

  6. 关于scrapy

    Scrapy安装 1,Pip install wheel 2,pip install 复制路径+文件名Twisted-18.7.0-cp36-cp36m-win_amd64.whl 3,Pip ins ...

  7. unity中使用www的库读取数据里面的数据

    //使用www的库,读取数据里面的数据 string factoryControllerUrl = "http://IP地址:8086/DatabaseServerCode/GangShan ...

  8. springboot解决文件上传大小限制

    (1)在配置文件(application.properties)加入如下代码 springboot2.0以下配置为: spring.http.multipart.maxFileSize = 10Mb ...

  9. Tomcat服务器提示:The server is temporarily unable to service your request due to maintenance downtime or capacity problems

    今天网站突然不能访问了,这里做一下记录提示: The server is temporarily unable to service your request due to maintenance d ...

  10. 考研计算机复试(C语言复试笔试题)(精华题选)

    1.以下选择中,正确的赋值语句是(C) A.a=1,b=2 B.j++ C.a=b=5; D.y=(int)x 解析:选项A.B.D都无分号 变量 = 表达式;//赋值语句是一定带分号的 int a= ...