手机酷狗音乐在播放的时候,中间有一个旋转图标,显示播放进度,如下所示。
Qt模仿酷狗音乐的播放图标效果图:

头文件

#ifndef QWHKUGOUMUSICLABEL_H
#define QWHKUGOUMUSICLABEL_H/** 模仿酷狗音乐的音乐播放图标* 支持缩放*/#include <QWidget>
#include <QPainter>
#include <QPropertyAnimation>
#include <QTimer>
#include <QPixmap>class QWHKuGouMusicLabel : public QWidget
{Q_OBJECTQ_ENUMS(State)Q_PROPERTY(int m_rotate READ getRotate WRITE setRotate)
public:enum State{Stopped,    //停止Paused,     //暂停Running,    //运行};explicit QWHKuGouMusicLabel(QWidget *parent = nullptr);~QWHKuGouMusicLabel();public://设置音乐时长void setMusicDuration(int secs);//设置背景图片旋转周期void setBgPixmapDuration(int secs);//设置每多少毫秒进度条更新一次进度void setBarInterval(int msecs);//设置当前音乐毫秒数void setCurMusicSecs(int msecs);//设置背景边缘宽度百分比(0-100)void setBorderWidth(int borderWidth);//设置背景图片当前旋转角度void setRotate(int rotate);//设置背景图片void setBgPixmap(const QPixmap &pixmap);//设置背景边缘颜色void setBorderColor(QColor borderColor);//设置背景图片底色void setBgColor(QColor bgColor);//设置进度条颜色void setBarColor(QColor barColor);//设置进度条圆圈颜色void setCircleColor(QColor circleColor);//获取音乐时长int getMusicDuration()      const;//获取背景图片旋转周期int getBgPixmapDuration()   const;//获取进度条更新频率(每多少毫秒更新一次进度)int getBarInterval()        const;//获取当前音乐毫秒数int getCurMusicSecs()       const;//获取背景边缘宽度百分比(0-100)int getBorderWidth()        const;//获取背景图片角度int getRotate()             const;//获取背景图片QPixmap getBgPixmap()       const;//获取背景边缘颜色QColor getBorderColor()     const;//获取背景图片底色QColor gtBgColor()          const;//获取进度条颜色QColor getBarColor()        const;//获取进度条圆圈颜色QColor getCircleColor()     const;//开始音乐动画void start();//暂停音乐动画void pause();//继续音乐动画void resume();//停止音乐动画void stop();protected:void paintEvent(QPaintEvent *event);//绘制背景void drawBackground(QPainter *painter);//绘制进度条void drawProgressBar(QPainter *painter);//绘制进度条圆圈void drawProgressBarCircle(QPainter *painter);private://角度转弧度double degreeToRadius(double degree);signals://状态改变时发送信号void stateChanged(State state);private slots:void onTimeOut();private:int m_musicDuration;                //音乐时长int m_pixmapDuration;               //背景图片旋转周期int m_barInterval;                  //每几秒进度条更新一次进度int m_curMusicSecs;                 //当前音乐毫秒数int m_borderWidth;                  //背景边缘宽度,百分比int m_rotate;                       //背景图片当前旋转角度QPixmap m_pixmap;                   //背景图片QColor m_borderColor;               //背景边缘颜色QColor m_bgColor;                   //背景图片底色QColor m_barColor;                  //进度条颜色QColor m_circleColor;               //进度条圆圈颜色QPropertyAnimation *m_animation;    //属性动画,旋转背景图片QTimer *m_timer;                    //定时器,更新进度条
};#endif // QWHKUGOUMUSICLABEL_H

Qt模仿酷狗音乐的播放图标相关推荐

  1. 实现 酷狗音乐 歌词播放效果

    今天将为大家带来 粗略版 酷狗音乐 歌词播放的效果.我们一步一步来.首先做这个是因为有一次公司项目中需要做一个汽车扫描效果的时候,想到来做这个歌词播放效果的.那么我们这次先上效果图: 好的上面的文字是 ...

  2. 关于酷狗音乐无法播放音乐,显示音频驱动异常的问题

    关于酷狗音乐无法播放音乐,显示音频驱动异常的问题 方法一:用鲁大师的驱动监测,查看声卡是否需要更新或者安装. 方法二:对"我的电脑"(或者"此电脑")右键点击& ...

  3. Qt/C++ 模仿 酷狗音乐播放器

    注:我重新用MarkDown来编辑文章,所以把以前的博文删掉了 大家的评论没有了,不好意思哈~ 一,先上图 主界面 搜索界面 菜单 模式和音量 托盘菜单 精准歌词 MV 二,遇到的问题 1. 刚开始不 ...

  4. Qt/C++ 模仿 酷狗音乐播放器Qt/C++ 模仿 酷狗音乐播放器

    一,先上图 主界面  搜索界面  菜单  模式和音量  托盘菜单  精准歌词  MV  二,遇到的问题 1. 刚开始不知道如何缩放无边框程序,琢磨了许久...  2. 播放列表的的那一坨!!不知道怎么 ...

  5. 微信小程序 :模仿酷狗音乐播放器等界面

    也没啥...就设计师要求按照他的界面来画..所以就没办法了 wxml代码: <!--当前为停止状态 --> <view style="width:250rpx;height ...

  6. 计算机快捷键弹音乐,电脑怎样用快捷键弹出酷狗音乐播放界面

    2018-04-03 电脑没声音 放酷狗音乐 在播放 但没声音 电脑没声音请按以下方案逐条排查应可解决(注意顺序),满意请采纳: ? ? ★第1步:检查右下角小喇叭还在不,音量是否关到最小了或是被选择 ...

  7. 酷狗音乐接口开放程度令人咂舌

    一.前言 事情是这样的,今天本来打算听听音乐,不自觉的就想起了以前最爱听的那首歌曲-------洋葱,一首有点伤感的歌曲,不禁想起了江浙一带的前女友,虽然结果现实而又无奈,但是歌曲是真的好听,那么今天 ...

  8. 基于Qt的仿酷狗音乐播放器设计(一)

    简述 其实在很早以前博主就有想用Qt写一个比较好的音乐播放器的想法,但由于平时上课的压力和以前对设计模式和代码规范做的不太好,一直没有进行.所以在这个寒假准备好好的设计一下.下面先简单的说明一下设计的 ...

  9. Qt制作简易的酷狗音乐播放器

    Qt制作简易的音乐播放器流程: 一.必须先抓取酷狗音乐的api,必须要得到搜索音乐的 hash . album_id 值.dfid.mid.platid等数据. 至于获取的方法,可以参考网上的连接:h ...

最新文章

  1. 谨慎跟随初始目的不被关联问题带偏
  2. Linux下glibc内存管理
  3. 解决redhat的未注册问题
  4. few-shot learning 1.1——零样本学习
  5. Spark SQL 中UDF的讲解
  6. 采用计算机发布调度命令时 必须严格遵守,实用文档其他之铁路调度命令格式图片调度命令规范格式...
  7. java并发执行一个方法_JAVA的执行并发原理
  8. 计算机开机时间停在上次关机,怎么在电脑开机的时候查看上次关机前的操作
  9. eppp如何导入php文件_PHP如何处理文件权限?(代码示例)
  10. python映射实体类_将Python(django)实体类转换为Java的好方法 - java
  11. 西瓜书boosting learning 集成的错误率推导
  12. TracKit-Ocean:目标跟踪网络(一) -- 环境部署及测试
  13. mac上配置java jdk环境
  14. 计算机网络原理(谢希仁第八版)第五章课后习题答案
  15. 机器人码垛手持式编程_工业机器人的码垛编程方法
  16. MYSQL的随机函数
  17. 新媒体运营模式的发展历史
  18. deflate 压缩 java_Java和PHP配合:deflate(压缩)和inflate(解压)
  19. java %取余数_计算机取余数java
  20. 密码学——对称加密加密模式

热门文章

  1. 根据汉字拼音首字母排序
  2. 不使用加法计算两个数的和
  3. 基于php志愿者服务平台管理系统获取(php毕业设计)
  4. Sketch 浅谈(一)
  5. LabWindows使用COMBOX
  6. 如何去除溴化锂溶液中的硼离子
  7. 7 errors and 0 warnings potentially fixable with the `--fix` option.报错处理
  8. 机器machine和设备equipment的区别
  9. 怎么压缩图片大小,图片压缩方法
  10. 日志(江苏科技大学)--------赛事管理系统