Qt自定义控件系列(一) --- 圆形进度条

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

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

因为我的水平有限,学习Qt时间不长,因此代码中出现BUG,不够优雅以及有待改进部分,还请见谅和提出意见。github

本项目全部代码在Qt5.10以上均测试经过,理论上Qt 5版本应该都支持。学习

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

(一) 圆形进度条动画

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

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

2.多种自定义控制,很是灵活;spa

3.可以自适应大小,不须要手动调整;3d

4.支持动画效果。

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

QPropertyAnimation* animation=new QPropertyAnimation(this,"_value"); animation->setDuration(500); 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上的源代码

相关文章
相关标签/搜索