-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmusicplayerui.cpp
More file actions
75 lines (62 loc) · 2.26 KB
/
musicplayerui.cpp
File metadata and controls
75 lines (62 loc) · 2.26 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#include "musicplayerui.h"
MusicPlayerUI::MusicPlayerUI(QWidget* parent) : QWidget(parent), usedVolume(50), ui(new Ui::MusicPlayerUI)
{
ui->setupUi(this);
connect(ui->playButton, &QPushButton::clicked, this, &MusicPlayerUI::onPlayButtonClicked);
connect(ui->nextButton, &QPushButton::clicked, this, &MusicPlayerUI::onNextButtonClicked);
connect(ui->previousButton, &QPushButton::clicked, this, &MusicPlayerUI::onPreviousButtonClicked);
connect(ui->positionSlider, &QSlider::sliderReleased, this, &MusicPlayerUI::onPositionSliderMoved);
connect(ui->volumeSlider, &QSlider::valueChanged, this, &MusicPlayerUI::onVolumeSliderValueChanged);
connect(ui->mutedButton, &QPushButton::clicked, this, &MusicPlayerUI::onSetMutedChanged);
connect(ui->playModeButton, &QPushButton::clicked, this, &MusicPlayerUI::onPlayModeIndexChanged);
lyricWidget = new LyricWidget(ui);
ui->volumeSlider->setValue(50);
}
MusicPlayerUI::~MusicPlayerUI()
{
delete ui;
}
LyricWidget* MusicPlayerUI::getLysic() {
return lyricWidget;
}
void MusicPlayerUI::onPlayButtonClicked() {
emit playClicked();
}
void MusicPlayerUI::onNextButtonClicked() {
emit nextClicked();
}
void MusicPlayerUI::onPreviousButtonClicked() {
emit previousClicked();
}
void MusicPlayerUI::onPositionSliderMoved() {
emit sliderMoved(static_cast<qint64>(ui->positionSlider->value()));
}
void MusicPlayerUI::onVolumeSliderValueChanged(qint64 volume) {
ui->volumelabel->setText(QString::number(volume));
emit volumeChanged(volume);
}
void MusicPlayerUI::onPlayModeIndexChanged() {
emit modeChanged();
}
Ui::MusicPlayerUI* MusicPlayerUI::getUi() {
return ui;
}
void MusicPlayerUI::onSetMutedChanged() {
int volume = ui->volumeSlider->value();
bool muted = volume == 0;
if (!muted) {
// 静音
if (usedVolume != 0) {
usedVolume = volume; // 仅在非静音状态保存音量
}
ui->volumeSlider->setValue(0); // 将音量设置为 0
ui->mutedButton->setIcon(QIcon("./images/volume_close.png"));
emit volumeChanged(0);
}
else {
// 取消静音,恢复之前的音量
ui->mutedButton->setIcon(QIcon("./images/volume.png"));
ui->volumeSlider->setValue(usedVolume);
emit volumeChanged(usedVolume);
}
}