zoukankan      html  css  js  c++  java
  • Qt自定义控件系列(一) --- 圆形进度条

    本系列主要使用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(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上的源代码

  • 相关阅读:
    网站发布小工具,--让发布变简单一点
    鼠标右键发布文件到远程服务器
    关于跑步耳机的一些思考
    对棋牌游戏平台的一些思考
    复杂业务简单化的一个小技巧
    游戏杂记
    python 杂记
    lua debug
    quick-cocos2d-x 杂记
    Linux 杂记
  • 原文地址:https://www.cnblogs.com/lomooo/p/10270870.html
Copyright © 2011-2022 走看看