TTKMusicPlayer  3.7.0.0
TTKMusicPlayer imitates Kugou UI, the music player uses of qmmp core library based on Qt for windows and linux
musicroundanimationlabel.cpp
Go to the documentation of this file.
2 
3 #include <QPainter>
4 
6  : QWidget(parent),
7  m_rotateAngle(0)
8 {
9  m_timer.setInterval(50 * TTK_DN_MS);
10  connect(&m_timer, SIGNAL(timeout()), SLOT(update()));
11 }
12 
14 {
15  stop();
16 }
17 
18 void MusicRoundAnimationLabel::setPixmap(const QPixmap &pix)
19 {
20  m_pixmap = pix;
21 }
22 
24 {
25  m_timer.setInterval(value);
26 }
27 
29 {
30  m_timer.start();
31 }
32 
34 {
35  m_timer.stop();
36 }
37 
38 void MusicRoundAnimationLabel::paintEvent(QPaintEvent *event)
39 {
40  QWidget::paintEvent(event);
41  QPainter painter(this);
42 
43  const QSize &self = size();
44  const QRect rotatedRect(-self.width() / 2, -self.height() / 2, self.width(), self.height());
45  const int cx = self.width() / 2;
46  const int cy = self.height() / 2;
47 
48  if(++m_rotateAngle >= TTK_AN_360)
49  {
51  }
52 
53  painter.save();
54  painter.setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform);
55  painter.translate(cx, cy);
56  painter.rotate(m_rotateAngle);
57  painter.drawPixmap(rotatedRect, m_pixmap);
58  painter.restore();
59 }
#define TTK_AN_360
Definition: ttkglobal.h:340
voidpf void uLong size
Definition: ioapi.h:136
void setPixmap(const QPixmap &pix)
virtual void paintEvent(QPaintEvent *event) overridefinal
MusicRoundAnimationLabel(QWidget *parent=nullptr)
#define TTK_DN_MS
Definition: ttkglobal.h:270