TTKMusicPlayer  3.7.0.0
TTKMusicPlayer imitates Kugou UI, the music player uses of qmmp core library based on Qt for windows and linux
musicremotewidgetforsquare.cpp
Go to the documentation of this file.
2 
3 #include <QGraphicsOpacityEffect>
4 
6  : MusicRemoteWidget(parent),
7  m_interval(0.0f)
8 {
9  setGeometry(200, 200, 100, 100);
10  adjustPosition(this);
11 
12  QGridLayout* grid = new QGridLayout(this);
13  for(int i = 0; i < 3; ++i)
14  {
15  grid->setRowMinimumHeight(i, 30);
16  grid->setRowStretch(i, 1);
17  }
18 
19  for(int i = 0; i < 3; ++i)
20  {
21  grid->setColumnMinimumWidth(i, 30);
22  grid->setColumnStretch(i, 1);
23  }
24  m_mainWidget->setFixedSize(70, 70);
25 
26  grid->addWidget(m_playButton, 0, 1, Qt::AlignCenter);
27  grid->addWidget(m_preSongButton, 1, 0, Qt::AlignCenter);
28  grid->addWidget(m_nextSongButton, 1, 2, Qt::AlignCenter);
29  grid->addWidget(m_settingButton, 2, 1, Qt::AlignCenter);
30  grid->addWidget(m_mainWidget, 1, 1, Qt::AlignCenter);
31 
32  QVBoxLayout *mainWidgetLayout = new QVBoxLayout(m_mainWidget);
33  mainWidgetLayout->setContentsMargins(0, 0, 0, 0);
34  mainWidgetLayout->setSpacing(0);
35  mainWidgetLayout->addWidget(m_showMainWindowButton);
36  mainWidgetLayout->setAlignment(m_showMainWindowButton, Qt::AlignCenter);
37  mainWidgetLayout->addWidget(m_volumeWidget);
38 
39  for(int i = 0; i < 4; ++i)
40  {
41  m_effect[i] = new QGraphicsOpacityEffect(this);
42  m_effect[i]->setOpacity(m_interval);
43  }
44 
45  connect(&m_enterTimer, SIGNAL(timeout()), SLOT(enterTimeout()));
46  connect(&m_leaveTimer, SIGNAL(timeout()), SLOT(leaveTimeout()));
47 }
48 
50 {
51  for(int i = 0; i < 4; ++i)
52  {
53  delete m_effect[i];
54  }
55 }
56 
58 {
59  QWidget::enterEvent(event);
60  m_leaveTimer.stop();
61  m_enterTimer.start(30);
62 }
63 
65 {
66  QWidget::leaveEvent(event);
67  m_enterTimer.stop();
68  m_leaveTimer.start(30);
69 }
70 
72 {
73  m_interval += 0.1f;
74  for(int i = 0; i < 4; ++i)
75  {
76  m_effect[i]->setOpacity(m_interval);
77  }
78  m_preSongButton->setGraphicsEffect(m_effect[0]);
79  m_nextSongButton->setGraphicsEffect(m_effect[1]);
80  m_playButton->setGraphicsEffect(m_effect[2]);
81  m_settingButton->setGraphicsEffect(m_effect[3]);
82 }
83 
85 {
86  m_interval -= 0.1f;
87  for(int i = 0; i < 4; ++i)
88  {
89  m_effect[i]->setOpacity(m_interval);
90  }
91  m_preSongButton->setGraphicsEffect(m_effect[0]);
92  m_nextSongButton->setGraphicsEffect(m_effect[1]);
93  m_playButton->setGraphicsEffect(m_effect[2]);
94  m_settingButton->setGraphicsEffect(m_effect[3]);
95 }
#define QtEnterEvent
Event enter.
Definition: ttkqtcompat.h:160
QPushButton * m_nextSongButton
QPushButton * m_showMainWindowButton
void adjustPosition(QWidget *w)
MusicRemoteWidgetForSquare(QWidget *parent=nullptr)
QPushButton * m_settingButton
QGraphicsOpacityEffect * m_effect[4]
The class of the desktop remote widget base.
QPushButton * m_playButton
virtual void leaveEvent(QEvent *event) overridefinal
virtual void enterEvent(QtEnterEvent *event) overridefinal
QPushButton * m_preSongButton