QT自定义控件系列(二) --- Loading加载动画控件

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

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

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

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

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

(二)Loading加载动画控件

示例如上,当然实际效果是动态的。

控件的特点

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

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

当然你也可以控制其他属性:

//设置圆点个数
    void setDotCount(int);
    //设置点颜色
    void setDotColor(const QColor&);
    //开始
    void start();
    //设置圆点最大直径
    void setMaxDiameter(float);
    //设置圆点最小直径
    void setMinDiameter(float);

一般的lloading动画是独立于其他界面的,所以这里我们做了简单的控制,当控件没有父级对象时,设置背景透明

//设置背景透明
    if(!this->parent())
    {
        this->setWindowFlags(Qt::FramelessWindowHint | Qt::WindowSystemMenuHint | Qt::WindowMinMaxButtonsHint);
        this->setAttribute(Qt::WA_TranslucentBackground, true);
    }

如果你还需要自定义圆点的样式,比如将其设置为正方形,汉字,你也可以参考源代码进行修改。更多部分,还请参考github上的源代码。

原文地址:https://www.cnblogs.com/lomooo/p/10271374.html