• 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上的源代码。

  • 相关阅读:
    【codeforces 785B】Anton and Classes
    【codeforces 785C】Anton and Fairy Tale
    【t003】string
    【BZOJ 1028】[JSOI2007]麻将
    【t011】最小覆盖子串
    【BZOJ 1029】[JSOI2007]建筑抢修
    cgb2008-京淘day02
    抽象类与接口概念及代码实例
    【hihocoder 1296】数论三·约瑟夫问题
    【hihocoder 1295】Eular质数筛法
  • 原文地址:https://www.cnblogs.com/lomooo/p/10271374.html
Copyright © 2020-2023  润新知