项目描述:
运行演示
播放模式切换
暂停/播放功能
音量调节与进度调节由于截图无意义就不截图了,还有上下曲切换也不截图了
添加歌曲
更换皮肤
换完后效果图
以及其他的显示
由于是使用QT5写的,所以这里只给出主要.cpp文件代码
#include "musicwidget.h"
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include "mylrc.h"
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
int i = 0;
int j = 0;
int num = 0;
musicWidget::musicWidget(QWidget *parent)
{
moved = 0;
this->setWindowFlags(Qt::FramelessWindowHint);
//this->setAttribute(Qt::WA_TranslucentBackground); //背景透明
this->setWindowIcon(QIcon("://images/icon.png"));
this->setMaximumSize(650,500);
this->setMinimumSize(650,500);
QPixmap pix1("://images/5.png"); //设置默认皮肤
pix1=pix1.scaled(this->width(),this->height()); //皮肤大小与窗口大小一致
this->setAutoFillBackground(true);
QPalette palette; //调色板类
palette.setBrush(QPalette::Background, QBrush(QPixmap(pix1))); //通过画刷设置颜色(不单一)
this->setPalette(palette); //把修改好的调色板类应用到窗口
namelabel = new QLabel;
namelabel->setMinimumSize(50,30);
//namelabel->setMaximumSize(100,30);
timelable = new QLabel;
timelable->setMinimumSize(50,30);
timelable->setMaximumSize(100,30);
toplabel = new QLabel(QString::fromLocal8Bit("muqt音乐播放器----翼飞出品"));
toplabel->setTextFormat(Qt::RichText);
toplabel->setOpenExternalLinks(true);
toplabel->setAlignment(Qt::AlignCenter);
//timelable->hide();
//timelable->setToolTip(QString::fromLocal8Bit("音量调节"));
slider = new QSlider(Qt::Horizontal); //进度条
slider->setValue(0);
slider->setMaximum(100);
slider2 = new QSlider(Qt::Horizontal);
slider2->setValue(50);
slider2->setMaximum(100);
slider2->setToolTip(QString::fromLocal8Bit("音量调节"));
playBtn=new QPushButton(QIcon("://images/play.png"),tr(" ")); //播放键
playBtn->setMaximumSize(70,30);
playBtn->setFlat(true);
playBtn->setShortcut(QKeySequence("s"));
playBtn->setToolTip(QString::fromLocal8Bit("播放/暂停(s)"));
tablewidget=new QTableWidget;
tablewidget->setColumnCount(3); //设置为3列
tablewidget->horizontalHeader()->setSectionResizeMode(0,QHeaderView::ResizeToContents);
tablewidget->horizontalHeader()->setSectionResizeMode(1,QHeaderView::ResizeToContents);
tablewidget->horizontalHeader()->setSectionResizeMode(2,QHeaderView::ResizeToContents);
tablewidget->setFrameShape(QFrame::NoFrame); //设置无边框
QPalette pale;
pale.setBrush(QPalette::Base,QColor(255,255,255,0));
tablewidget->setPalette(pale);
tablewidget->setSelectionMode(QAbstractItemView::SingleSelection); // 设置选择模式为单选
tablewidget->setSelectionBehavior(QAbstractItemView::SelectRows); // 设置每次选一行
QStringList stringlist;
stringlist<setHorizontalHeaderLabels(stringlist); //设置表头
tablewidget->verticalHeader()->setVisible(false); //设置垂直头不可见
tablewidget->horizontalHeader()->resizeSection(0,150); //设置标头第一列宽度为150
tablewidget->horizontalHeader()->setStretchLastSection(true); //设置充满表宽度
tablewidget->horizontalHeader()->setStyleSheet("QHeaderView {background-color:255,255,255,0 } "
"QHeaderView::section {background-color:255,255,255,0;"
"color: 255,255,255,0;padding-left: 4px;border: 0px solid 255,255,255,0;}");
//设置表头背景色等
//playstylecombox=new QComboBox; //下拉选择框
//playstylecombox->addItem(QString::fromLocal8Bit("循环播放"));
//playstylecombox->addItem(QString::fromLocal8Bit("列表循环"));
//playstylecombox->addItem(QString::fromLocal8Bit("随机播放"));
//playstylecombox->addItem(QString::fromLocal8Bit("单曲循环"));
//playstylecombox->setMaximumSize(110,50);
trayicon=new QSystemTrayIcon(QIcon("://images/icon.png")); //关闭按钮
playlist=new QMediaPlaylist; //播放列表保存文件,路径等
closeBtn=new QPushButton(QIcon("://images/close.png"),tr(" "));
closeBtn->setMaximumSize(70,30);
closeBtn->setFlat(true);
closeBtn->setShortcut(QKeySequence("c"));
closeBtn->setToolTip(QString::fromLocal8Bit("关闭(c)"));
stylechange = new QPushButton(QIcon("://images/danqu.png"),tr(" "));
stylechange->setMaximumSize(70,30);
stylechange->setFlat(true);
stylechange->setShortcut(QKeySequence("c"));
stylechange->setToolTip(QString::fromLocal8Bit("单曲循环(c)"));
playlist->setPlaybackMode(QMediaPlaylist::CurrentItemInLoop);
loudle = new QPushButton(QIcon("://images/traysound1.png"),tr(" "));
loudle->setMaximumSize(30,30);
loudle->setFlat(true);
loudle->setShortcut(QKeySequence("n"));
loudle->setToolTip(QString::fromLocal8Bit("关闭声音(n)"));
addmusicBtn=new QPushButton(QIcon("://images/open.png"),tr(" "));
addmusicBtn->setMaximumSize(100,30);
addmusicBtn->setFlat(true);
addmusicBtn->setShortcut(QKeySequence("o"));
addmusicBtn->setToolTip(QString::fromLocal8Bit("打开文件(o)"));
stopBtn=new QPushButton(QIcon("://images/stop.png"),tr(" "));
stopBtn->setMaximumSize(70,30);
stopBtn->setFlat(true);
stopBtn->setShortcut(QKeySequence("t"));
stopBtn->setToolTip(QString::fromLocal8Bit("停止(t)"));
nextBtn=new QPushButton(QIcon("://images/skipForward.png"),tr(" "));
nextBtn->setMaximumSize(70,30);
nextBtn->setMinimumSize(70,30);
nextBtn->setFlat(true);
nextBtn->setShortcut(QKeySequence("x"));
nextBtn->setToolTip(QString::fromLocal8Bit("下一曲(x)"));
lastBtn=new QPushButton(QIcon("://images/skipBackward.png"),tr(" "));
lastBtn->setMaximumSize(70,30);
lastBtn->setFlat(true);
lastBtn->setShortcut(QKeySequence("l"));
lastBtn->setToolTip(QString::fromLocal8Bit("上一曲(l)"));
imageBtn=new QPushButton(QIcon("://images/image.png"),tr(" "));
imageBtn->setMaximumSize(100,50);
imageBtn->setFlat(true);
imageBtn->setToolTip(QString::fromLocal8Bit("换肤"));
windowminBtn=new QPushButton(QIcon("://images/min.png"),tr(" "));
windowminBtn->setMaximumSize(100,50);
windowminBtn->setFlat(true);
windowminBtn->setShortcut(QKeySequence("m"));
windowminBtn->setToolTip(QString::fromLocal8Bit("最小化(m)"));
//windowminBtn->setWindowFlags(Qt::WindowMinimizeButtonHint);
// QAction *LRCAction = new QAction(tr("LRC"),this);
// LRCAction->setShortcut(QKeySequence("F2"));
// LRCAction->setToolTip(QString::fromLocal8Bit("桌面歌词(F2)"));
// connect(LRCAction,SIGNAL(triggered()),this,SLOT(SetLrcShown()));
QPushButton *LRCAction = new QPushButton(QIcon("://images/timg.jpg"),tr(" "));
LRCAction->setMaximumSize(70,30);
LRCAction->setFlat(true);
LRCAction->setShortcut(QKeySequence("w"));
LRCAction->setToolTip(QString::fromLocal8Bit("桌面歌词(w)"));
QHBoxLayout* layout=new QHBoxLayout; //设置控件添加为从左到右
layout->addWidget(stylechange);
layout->addWidget(lastBtn);
layout->addWidget(playBtn);
layout->addWidget(stopBtn);
layout->addWidget(nextBtn);
layout->addWidget(loudle);
layout->addWidget(slider2);
layout->addWidget(LRCAction);
QHBoxLayout* layout2 = new QHBoxLayout;
layout2->addWidget(addmusicBtn);
layout2->addWidget(imageBtn);
layout2->addWidget(windowminBtn);
layout2->addWidget(closeBtn);
//layout2->addWidget(playstylecombox);
QHBoxLayout* layout3 = new QHBoxLayout;
layout3->addWidget(namelabel);
layout3->addWidget(timelable);
QVBoxLayout* v=new QVBoxLayout(this); //设置控件添加为从上到下
v->addLayout(layout2);
v->addWidget(tablewidget);
v->addWidget(slider);
v->addWidget(toplabel);
v->addLayout(layout3);
v->addLayout(layout);
playlist->setPlaybackMode(QMediaPlaylist::Sequential);
player = new QMediaPlayer; //解析音/视屏文件的类
player->setPlaylist(playlist);
player->setVolume(50);
timer=new QTimer(this);
//信号和槽
//connect(timer,SIGNAL(timeout()),this,SLOT(changslider()));
//connect(playstylecombox,SIGNAL(currentIndexChanged(int)),this,SLOT(changplaystyle(int)));
//窗口最小化
connect(windowminBtn,SIGNAL(clicked()),this,SLOT(showMinimized()));
//换皮肤
connect(imageBtn,SIGNAL(clicked()),this,SLOT(changimage()));
//添加文件
connect(addmusicBtn,SIGNAL(clicked(bool)),this,SLOT(readfile()));
//停止播放
connect(stopBtn,SIGNAL(clicked(bool)),this,SLOT(playstop()));
//暂停/播放
connect(playBtn,SIGNAL(clicked(bool)),this,SLOT(playstate()));
//下一曲
connect(nextBtn,SIGNAL(clicked(bool)),this,SLOT(nextplay()));
//上一曲
connect(lastBtn,SIGNAL(clicked(bool)),this,SLOT(lastplay()));
//关闭
connect(closeBtn,SIGNAL(clicked(bool)),this,SLOT(close()));
//播放列表切换歌曲
connect(tablewidget,SIGNAL(cellDoubleClicked(int,int)),this,SLOT(changplay(int,int)));
//当前播放歌曲
connect(playlist,SIGNAL(currentIndexChanged(int)),this,SLOT(updatenamelabel(int)));
//歌曲切换时进度条归0
connect(playlist,SIGNAL(currentIndexChanged(int)),this,SLOT(updateslider()));
//进度切换
connect(player,SIGNAL(positionChanged(qint64)),this,SLOT( positionChange(qint64)));
connect(player,SIGNAL(durationChanged(qint64)),this,SLOT(updatatime(qint64 position)));
connect(player,SIGNAL(stateChanged(QMediaPlayer::State)),this,SLOT(StateChanged(QMediaPlayer::State)));
//显示歌曲时长与当前进度(时间)
connect(slider,SIGNAL(sliderMoved(int)),this,SLOT(seekchange(int)));
//音量调节(进度条)
connect(slider2,SIGNAL(sliderMoved(int)),this,SLOT(volumchange(int)));
//静音
connect(loudle,SIGNAL(clicked()),this,SLOT(meteopen()));
//切换播放模式
connect(stylechange,SIGNAL(clicked()),this,SLOT(changstyle()));
//显示/关闭歌词
connect(LRCAction,SIGNAL(clicked()),this,SLOT(SetLrcShown()));
timer->setInterval(1000);
lrc = new MyLrc(this);
lrc->show();
// trayIcon = new QSystemTrayIcon(QIcon("://images/icon.png"),this);
// trayIcon->setToolTip(QString::fromLocal8Bit("musicplayer"));
// QMenu *menu = new QMenu;
// QHBoxLayout* layout4=new QHBoxLayout;
// layout4->addWidget(lastBtn);
// layout4->addWidget(playBtn);
// layout4->addWidget(stopBtn);
// layout4->addWidget(nextBtn);
// // menu->add
// // menu->addSeparator();
// // menu->addAction(LRCAction);
// // menu->addSeparator();
// menu->addAction(QString::fromLocal8Bit("退出"),qApp,SLOT(quit()));
// trayIcon->setContextMenu(menu);
// connect(trayIcon, SIGNAL(activated(QSystemTrayIcon::ActivationReason)),
// this, SLOT(trayIconActivated(QSystemTrayIcon::ActivationReason)));
// trayIcon->show();
}
musicWidget::~musicWidget()
{
}
//void musicWidget::trayIconActivated(QSystemTrayIcon::ActivationReason activationReason)
//{
// if(activationReason == QSystemTrayIcon::Trigger)
// {
// show();
// }
//}
//void musicWidget::closeEvent(QCloseEvent *event)
//{
// if(isVisible())
// {
// hide();
// trayIcon->showMessage(QString::fromLocal8Bit("music音乐播放器"),QString::fromLocal8Bit("点我显示界面"));
// event->ignore();
// }
//}
void musicWidget::SetLrcShown()
{
// if(lrc->isHidden())
// lrc->show();
// else
// lrc->hide();
static int l = 0;
if(++l == 1)
{
lrc->hide();
l = 1;
}
else
{
lrc->show();
l = 0;
}
}
void musicWidget::StateChanged(QMediaPlayer::State new_state)
{
//lrc->setText(tr("123456778"));
switch(new_state)
{
case QMediaPlayer::PlayingState:
stopBtn->setEnabled(true);
playBtn->setIcon(QIcon("://images/pause.png"));
//toplabel->setText(tablewidget->item(playlist->currentIndex(),1)->text());
resolveLrc(tablewidget->item(playlist->currentIndex(),1)->text());
break;
case QMediaPlayer::StoppedState:
stopBtn->setEnabled(false);
playBtn->setIcon(QIcon("://images/play.png"));
//toplabel->setText(tr("http://www.cnblogs.com/tornadomeet/"));
timelable->setText("00:00/00:00");
lrc->stopLrcMask();
lrc->setText(QString::fromLocal8Bit("简易音乐播放器"));
//qDebug() << "111222";
break;
case QMediaPlayer::PausedState:
stopBtn->setEnabled(true);
playBtn->setIcon(QIcon("://images/play.png"));
//toplabel->setText(tablewidget->item(playlist->currentIndex(),1)->text() + QString::fromLocal8Bit("已暂停"));
//lrc->setText(tr("220"));
if(lrcMap.isEmpty())
{
lrc->stopLrcMask();
lrc->setText(toplabel->text());
}
break;
case QMediaPlayer::BufferingMedia:
break;
default: ;
}
}
void musicWidget::resolveLrc(const QString &sourceFileName)
{
//lrc->setText(tr("123456"));
lrcMap.clear();
if(sourceFileName.isEmpty())
return;
QString fileName = sourceFileName;
qDebug() << fileName;
// lrc->setText(tr("550"));
QString lrcFileName = fileName.remove(fileName.right(3));
lrcFileName = fileName.remove(fileName.left(1));
lrcFileName = "../../music/"+lrcFileName + "lrc";
qDebug() << lrcFileName;
QFile file(lrcFileName);
if(!file.open(QIODevice::ReadOnly | QIODevice::Text))
{
lrc->setText(tablewidget->item(playlist->currentIndex(),1)->text() + QString::fromLocal8Bit("----未找到歌词文件"));
return;
}
QTextCodec::setCodecForLocale(QTextCodec::codecForLocale());
QString allText = QString(file.readAll());
file.close();
QStringList lines = allText.split("\n");
QRegExp rx("\\[\\d{2}\\:\\d{2}\\.\\d{2}\\]");("\n");
foreach(QString oneLine,lines)
{
//QByteArray ba = oneLine.toLatin1();
//const char* ss = ba.data();
//qDebug() << QString::fromLocal8Bit(ss);
QString temp = oneLine;
temp.replace(rx,"");
//qDebug() << temp;
int pos = rx.indexIn(oneLine,0);
while(pos != -1)
{
QString cap = rx.cap(0);
QRegExp regexp;
regexp.setPattern("\\d{2}(?=:)");
regexp.indexIn(cap);
int minute = regexp.cap(0).toInt();
regexp.setPattern("\\d{2}(?=\\.)");
regexp.indexIn(cap);
// qDebug() << lrcFileName << pos << "111";
int second = regexp.cap(0).toInt();
regexp.setPattern("\\d{2}(?=\\])");
regexp.indexIn(cap);
// qDebug() << lrcFileName << pos << "222";
int millisecond = regexp.cap(0).toInt();
qint64 totalTime = minute * 60000 + second * 1000 + millisecond * 10;
//qDebug() << minute << " " << second << " " << millisecond;
lrcMap.insert(totalTime,temp);
pos += rx.matchedLength();
pos = rx.indexIn(oneLine,pos);
//QByteArray ba = temp.toLatin1();
//const char* str = ba.data();
//qDebug() << QString::fromLocal8Bit(str);
}
}
if(lrcMap.isEmpty())
{
lrc->setText(tablewidget->item(playlist->currentIndex(),1)->text() + QString::fromLocal8Bit("---歌词文件内容错误!"));
return;
}
}
void musicWidget::updatatime(qint64 position)
{
qint64 time = position;
//qDebug() << position;
QTime time1(0,(time / 60000) % 60,(time / 1000) % 60);
QTime time2(0,(player->duration() / 60000) % 60,(player->duration() / 1000) % 60);
QString str = time1.toString("mm:ss") + "/" + time2.toString("mm:ss");
timelable->setText(str);
if(!lrcMap.isEmpty())
{
qint64 previous = 0;
qint64 later = 0;
//qDebug() << lrcMap.keys();
foreach(qint64 value,lrcMap.keys())
{
if(position >= value)
{
previous = value;
}
else
{
later = value;
break;
}
//qDebug() << value ;
}
if(later == 0)
later = player->duration();
//qDebug()<text())
{
lrc->setText(currentLrc);
//qDebug() << currentLrc;
//lrc->setText("56789");
toplabel->setText(currentLrc);
qint64 intervalTime = later - previous;
lrc->startLrcMask(intervalTime);
}
}
else
toplabel->setText(tablewidget->item(playlist->currentIndex(),1)->text());
//toplabel->setText(tr("330"));
}
QString musicWidget::changfilename(QString filepath)
{
QString tmp;
tmp.clear();
if(!filepath.isEmpty())
{
for(int i=0;imove(event->globalPos() - this->dpos);
}
void musicWidget::mousePressEvent(QMouseEvent *event)
{
this->windowPos= this->pos(); //获得当前部件位置
this->mousePos = event->globalPos(); //获得鼠标位置
this->dpos = mousePos - windowPos; //移动后部件所在位置
}
//void musicWidget::changslider()
//{
// int v=slider->value();
// slider->setValue(++v);
//}
//void musicWidget::changplaystyle(int)
//{
// int v=playstylecombox->currentIndex();
// switch (v) {
// case 0:
// playlist->setPlaybackMode(QMediaPlaylist::Sequential); //设置顺序播放
// break;
// case 1:
// playlist->setPlaybackMode(QMediaPlaylist::Loop); //设置列表循环
// case 2:
// playlist->setPlaybackMode(QMediaPlaylist::Random); //设置随机播放
// case 3:
// playlist->setPlaybackMode(QMediaPlaylist::CurrentItemInLoop); //设置单曲循环
// default:
// break;
// }
//}
void musicWidget::playstate()
{
if(num == 0)
{
QMessageBox::information(this,QString::fromLocal8Bit("警告"),QString::fromLocal8Bit("当前列表为空请添加歌曲"));
return;
}
if(++i % 2 == 1)
{
playBtn->setIcon(QIcon("://images/pause.png"));
//playBtn = new QPushButton(QIcon("://images/play.png"),tr(" "));
player->play();
timer->start();
}
else
{
playBtn->setIcon(QIcon("://images/play.png"));
player->pause();
timer->stop();
}
}
void musicWidget::playstop()
{
if(num == 0)
{
QMessageBox::information(this,QString::fromLocal8Bit("警告"),QString::fromLocal8Bit("当前列表为空请添加歌曲"));
return;
}
player->stop();
timer->stop();
playBtn->setIcon(QIcon("://images/play.png"));
slider->setValue(0);
i = 0;
}
void musicWidget::nextplay()
{
lrc->stopLrcMask();
if(num == 0)
{
QMessageBox::information(this,QString::fromLocal8Bit("警告"),QString::fromLocal8Bit("当前列表为空请添加歌曲"));
return;
}
int v=playlist->currentIndex(); //获取当前播放的下标
//QString name=playlist->currentMedia();
if(++v==playlist->mediaCount()) //判断当前是否为最后一首
{
v=0;
}
playlist->setCurrentIndex(v); //将播放点设置到下一个位置
slider->setValue(0);
playstate();
playstate();
playBtn->setIcon(QIcon("://images/pause.png"));
i = 1;
player->play();
timer->start();
}
void musicWidget::lastplay()
{
lrc->stopLrcMask();
if(num == 0)
{
QMessageBox::information(this,QString::fromLocal8Bit("警告"),QString::fromLocal8Bit("当前列表为空请添加歌曲"));
return;
}
int v=playlist->currentIndex();
if(--v<0)
v=0;
playlist->setCurrentIndex(v);
slider->setValue(0);
playstate();
playstate();
playBtn->setIcon(QIcon("://images/pause.png"));
i = 1;
player->play();
timer->start();
}
QStringList musicWidget::readfile()
{
QStringList musiclist=QFileDialog::getOpenFileNames(this,QString::fromLocal8Bit("选择文件"),tr("../../music"),tr("music(*.mp3)"));
for(int i=0;iaddMedia(QUrl::fromLocalFile(path)); //添加媒体文件
QString filename = changfilename(path);
int rownum=tablewidget->rowCount();
QString str=filename.section("-",1,2);
QString str1=str.split("[").front();
tablewidget->insertRow(rownum);
tablewidget->setItem(rownum,0,new QTableWidgetItem(filename.split("-").front()));
tablewidget->setItem(rownum,1,new QTableWidgetItem(str1));
tablewidget->setItem(rownum,2,new QTableWidgetItem(filename.split(".").last()));
tablewidget->setItem(rownum,3,new QTableWidgetItem(path));
tablewidget->setEditTriggers(QAbstractItemView::NoEditTriggers);
// for(int k = 0;k < num;k++)
// {
// if(musiclist[1] == tablewidget->item(k,1)->text())
// {
// QMessageBox::information(this,QString::fromLocal8Bit("提示"),QString::fromLocal8Bit("歌曲已存在"));
// //return music;
// }
// }
}
}
num = i+1;
return musiclist;
}
void musicWidget::changplay(int index, int )
{
playlist->setCurrentIndex(index);
slider->setValue(0);
playBtn->setIcon(QIcon("://images/pause.png"));
++i;
player->play();
timer->start();
}
void musicWidget::changimage()
{
QString imagepath=QFileDialog::getOpenFileName(this,QString::fromLocal8Bit("选择图片"),tr("/"),tr("image file(*.png)"));
QPixmap pix2(imagepath);
pix2=pix2.scaled(this->width(),this->height());
this->setAutoFillBackground(true);
QPalette palette;
palette.setBrush(QPalette::Background, QBrush(QPixmap(pix2)));
this->setPalette(palette);
}
void musicWidget::updatenamelabel(int index)
{
namelabel->setText(tablewidget->item(index,1)->text());
}
void musicWidget::updateslider()
{
slider->setValue(0);
}
void musicWidget::positionChange(qint64 position)
{
slider->setMaximum(player->duration() / 1000);
slider->setValue(position / 1000);
// moved = position;
// QTime time(0,(moved / 60000) % 60,(moved / 1000) % 60);
// timelable->setText(time.toString("mm:ss"));
updatatime(position);
}
void musicWidget::seekchange(int position)
{
player->setPosition(position * 1000);
// moved = position;
// QTime time(0,(moved / 60000) % 60,(moved / 1000) % 60);
// timelable->setText(time.toString("mm:ss"));
updatatime(position);
}
void musicWidget::volumchange(int vol)
{
player->setVolume(vol);
}
void musicWidget::meteopen()
{
//int lou = slider2->value();
static bool flag = true;
if(flag)
{
// loudle->setStyleSheet("QPushButton:!hover{border-image: url(://images/traysound2.png)}"
// "QPushButton:hover{border-image: url(://images/traysound2.png)}"
// "QPushButton:pressed{border-image: url(://images/traysound2.png)}"
// "QPushButton:focus{padding:-1;}");
loudle->setIcon(QIcon("://images/traysound2.png"));
slider2->setValue(0);
//slider2->hide();
loudle->setToolTip(QString::fromLocal8Bit("打开声音(n)"));
player->setMuted(true);
}
else
{
// loudle->setStyleSheet("QPushButton:!hover{border-image: url(://images/traysound1.png)}"
// "QPushButton:hover{border-image: url(://images/traysound1.png)}"
// "QPushButton:pressed{border-image: url(://images/traysound1.png)}"
// "QPushButton:focus{padding:-1;}");
loudle->setIcon(QIcon("://images/traysound1.png"));
slider2->setValue(50);
//slider2->show();
loudle->setToolTip(QString::fromLocal8Bit("关闭声音(n)"));
player->setMuted(false);
}
flag = !flag;
}
void musicWidget::changstyle()
{
if(++j % 3 == 1)
{
stylechange->setIcon(QIcon("://images/shunxu.png"));
stylechange->setToolTip(QString::fromLocal8Bit("循环播放(c)"));
playlist->setPlaybackMode(QMediaPlaylist::Loop);
}
else if(j % 3 == 2)
{
stylechange->setIcon(QIcon("://images/suiji.png"));
stylechange->setToolTip(QString::fromLocal8Bit("随机播放(c)"));
playlist->setPlaybackMode(QMediaPlaylist::Random);
}
else
{
j = 0;
stylechange->setIcon(QIcon("://images/danqu.png"));
stylechange->setToolTip(QString::fromLocal8Bit("单曲循环(c)"));
playlist->setPlaybackMode(QMediaPlaylist::CurrentItemInLoop);
}
}