Qt6开发跨平台音乐播放器(八):一种旋转的音乐封面的实现方法

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值