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