1. 概述
这一节我们用QLabel+QTimer来做一个旋转的圆形音乐封面,实现以下几个功能:
-
自动将封面图转换成圆形
-
可以启动/停止旋转
-
可以控制旋转速度
2. 实现
创建一个rotatingcover模块,包含RotatingCover类,继承自QLabel:
rotatingcover
- rotatingcover.pri
- rotatingcover.h
- rotatingcover.cpp
主要思路如下:
-
设置一个旋转角度m_angle,初始为0
-
设置一个定时器m_timer,每interval毫秒触发一次,执行两个操作
-
++m_angle
-
update()
-
-
update操作会触发paintEvent事件,重载这个事件,根据m_angle绘制圆形封面
调用m_timer的start/stop接口就可以实现旋转的启动/停止,而控制interval的值就可以控制旋转的速度(越小越快),这部分代码如下:
// rotatingcover.h
class QTimer;
class RotatingCover : public QLabel {
Q_OBJECT
public:
RotatingCover(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags());
virtual ~RotatingCover() = default

最低0.47元/天 解锁文章
1918

被折叠的 条评论
为什么被折叠?



