#include "mainwindow.h"
#include "ui_mainwindow.h"
#include<QList>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
a=true;
maxnum=-1;
player = new QMediaPlayer;
slider=new QSlider();
ui->volumeSlider->setValue(player->volume());
this->setWindowTitle("梁氏播放器");
this->setWindowIcon(QIcon(":/new/prefix1/H:/图标/311/ico 16/Music.ico"));
ui->openbutton->setStyleSheet("QPushButton{border-image:url(:/new/prefix2/pause2.png);font: 75 12pt 方正稚艺简体}"
"QPushButton:pressed{border-image:url(:/new/prefix2/未标题-3.png);}");
ui->adddirButton->setStyleSheet("QPushButton{border-image:url(:/new/prefix2/pause2.png);font: 75 12pt 方正稚艺简体}"
"QPushButton:pressed{border-image:url(:/new/prefix2/未标题-3.png);}");
ui->playandpause->setStyleSheet("QPushButton{border-image:url(:/new/prefix3/按钮图片/pause1.png);}"
"QPushButton:pressed{border-image:url(:/new/prefix3/按钮图片/pause1.png);}");
ui->pushButton_3->setStyleSheet("QPushButton{border-image:url(:/new/prefix3/按钮图片/next1.png);}"
"QPushButton:pressed{border-image:url(:/new/prefix3/按钮图片/next2.png);}");
ui->pushButton->setStyleSheet("QPushButton{border-image:url(:/new/prefix3/按钮图片/shang.png);}"
"QPushButton:pressed{border-image:url(:/new/prefix3/按钮图片/shang2.png);}");
ui->sytlebutton->setStyleSheet("QPushButton{border-image:url(:/new/prefix2/next2.png);font: 75 12pt Webdings;color: rgb(255, 255, 255);}"
"QPushButton:pressed{border-image:url(:/new/prefix2/未标题-3.png);}");
ui->pushButton_4->setStyleSheet("QPushButton{border-image:url(:/new/prefix2/next2.png);color: rgb(255, 255, 255);}"
"QPushButton:pressed{border-image:url(:/new/prefix2/未标题-3.png);}");
ui->pushButton_2->setStyleSheet("QPushButton{border-image:url(:/new/prefix2/next2.png);font: 100 14pt Aharoni;color: rgb(255, 255, 255);}"
"QPushButton:pressed{border-image:url(:/new/prefix2/未标题-3.png);}");
connect(player,SIGNAL(positionChanged(qint64)), this, SLOT(qmpPlaying(qint64)));
connect(player,SIGNAL(durationChanged(qint64)),this,SLOT(qmpDuration(qint64)));
connect(ui->listWidget,SIGNAL(itemDoubleClicked(QListWidgetItem*)),this,SLOT(tem(QListWidgetItem*)));
connect(ui->openbutton,SIGNAL(clicked()),this,SLOT(open()));
connect(ui->adddirButton,SIGNAL(clicked()),this,SLOT(adddir()));
connect(ui->sytlebutton,SIGNAL(clicked()),this,SLOT(setbrtsty()));
}
MainWindow::~MainWindow()
{
delete ui;
}
//可以利用按钮的窗口化实现音量的调节
//---------------------------------添加歌曲文件夹--------------------------------
void MainWindow::adddir()
{
QString dirname=QFileDialog::getExistingDirectory(this,"open","H:");
QDir qd(dirname);
qd.setFilter(QDir::Files|QDir::Hidden|QDir::NoSymLinks);
qd.setSorting(QDir::Size|QDir::Reversed);
QFileInfoList list = qd.entryInfoList();
for(int i=0;i< list.size();++i)
{
if(list.at(i).fileName().right(3) == "mp3")
{
songlst += dirname + "/" + list.at(i).fileName();
maxnum+=1;
name+=list.at(i).fileName();
ui->listWidget->addItem(list.at(i).fileName());
}
}
}
//-----------------添加歌曲,可以添加一首,也可以很多------------------------------------------------------------
void MainWindow::open()
{
QString dir,fname;
QStringList danname;
QStringList filename=QFileDialog::getOpenFileNames(this,"Open","H:/KuGou","Sounds Files (*.mp3)");
if(!filename.isEmpty())
{
for(int i=0;i<filename.size();i++)
{
QUrl url(filename.at(i));
danname+=url.fileName();
}
songlst+=filename;
maxnum +=filename.size();
ui->listWidget->addItems(danname);
}
}
//------------------------------------------------------------------------------------
void MainWindow::on_volumeSlider_actionTriggered()//音量获取调节
{
player->setVolume(ui->volumeSlider->value());
}
//-----------------------------暂停播放区域----------------------------------------
void MainWindow::playclicked()
{
player->play();
ui->playandpause->setStyleSheet("QPushButton{border-image:url(:/new/prefix3/按钮图片/pause1.png);}"
"QPushButton:pressed{border-image:url(:/new/prefix3/按钮图片/pause2.png);}");
}
void MainWindow::pauseclicked()
{
player->pause();
ui->playandpause->setStyleSheet("QPushButton{border-image:url(:/new/prefix3/按钮图片/play1.png);}"
"QPushButton:pressed{border-image:url(:/new/prefix3/按钮图片/play2.png);}");
}
void MainWindow::on_playandpause_clicked()
{
if(a)
{
a=!connect(ui->playandpause,SIGNAL(clicked(bool)),this,SLOT(pauseclicked()));
}else
{
a=connect(ui->playandpause,SIGNAL(clicked(bool)),this,SLOT(playclicked()));
}
}
//-----------------------播放进度--------------------------------------------
void MainWindow::qmpPlaying(qint64 position)
{
QTime duration(0, position / 60000, qRound((position % 60000) / 1000.0));
ui->label->setText(duration.toString("mm:ss"));
QTime maxtime(0, player->duration() / 60000, qRound((player->duration() % 60000) / 1000.0));
QTime null(0,0,0);
if(position == player->duration() & maxtime!=null)
{
on_pushButton_3_clicked();
}
ui->horizontalSlider->setSliderPosition(position);
}
void MainWindow::qmpDuration(qint64 pos)
{
ui->horizontalSlider->setRange(0,pos);
}
void MainWindow::on_horizontalSlider_sliderMoved(int position)
{
player->setPosition(position);
}
//-------------------------------------------------------------------------------------
void MainWindow::tem(QListWidgetItem *a1)//双击列表播放歌曲的槽
{
int x=ui->listWidget->row(a1);
playnum=x;
player->setMedia(QMediaContent(QUrl(songlst.at(x))));
player->play();
a=!connect(ui->playandpause,SIGNAL(clicked(bool)),this,SLOT(pauseclicked()));
ui->label_2->setText(a1->text());
}
//---------------下一曲---------------------------------------------------------------
void MainWindow::on_pushButton_3_clicked()
{
if(maxnum>0)
{
if(maxnum==playnum)
{
playnum=0;
ui->listWidget->setCurrentRow(playnum);
ui->label_2->setText(ui->listWidget->item(playnum)->text());
player->setMedia(QMediaContent(QUrl(songlst.at(playnum))));
player->play();
}
else
{
playnum=playnum+1;
ui->listWidget->setCurrentRow(playnum);
ui->label_2->setText(ui->listWidget->item(playnum)->text());
player->setMedia(QMediaContent(QUrl(songlst.at(playnum))));
player->play();
}
}
}
//-----------------------------上一曲----------------------------------------------
void MainWindow::on_pushButton_clicked()
{
if(maxnum>0)
{
if(playnum==0)
{
playnum=maxnum;
ui->listWidget->setCurrentRow(playnum);
ui->label_2->setText(ui->listWidget->item(playnum)->text());
player->setMedia(QMediaContent(QUrl(songlst.at(playnum))));
player->play();
}else
{
playnum=playnum-1;
ui->listWidget->setCurrentRow(playnum);
ui->label_2->setText(ui->listWidget->item(playnum)->text());
player->setMedia(QMediaContent(QUrl(songlst.at(playnum))));
player->play();
}
}
}
//------------------------------关闭
没有合适的资源?快使用搜索试试~ 我知道了~
QT music play音乐播放器源码
需积分: 13 24 下载量 191 浏览量
2016-01-12
06:50:24
上传
评论 3
收藏 18.76MB GZ 举报
温馨提示
共101个文件
ico:55个
png:25个
cpp:5个
QT music play音乐播放器源码(用于ubuntu等linux系统)。
资源推荐
资源详情
资源评论
收起资源包目录
QT music play音乐播放器源码 (101个子文件)
miusplay.pro.user.74f0663 18KB
mainwindow.cpp 10KB
dialog.cpp 3KB
main.cpp 369B
form.cpp 187B
zhuti.cpp 108B
mainwindow.h 2KB
dialog.h 1004B
form.h 369B
zhuti.h 249B
说明.htm 3KB
14.ico 355KB
5.ico 355KB
2.ico 355KB
11.ico 355KB
10.ico 355KB
3.ico 355KB
13.ico 355KB
12.ico 355KB
9.ico 355KB
6.ico 355KB
8.ico 355KB
7.ico 355KB
1.ico 355KB
0.ico 355KB
4.ico 355KB
14.ico 90KB
5.ico 90KB
2.ico 90KB
24.ico 90KB
19.ico 90KB
36.ico 90KB
11.ico 90KB
31.ico 90KB
37.ico 90KB
34.ico 90KB
17.ico 90KB
22.ico 90KB
10.ico 90KB
27.ico 90KB
3.ico 90KB
13.ico 90KB
12.ico 90KB
33.ico 90KB
9.ico 90KB
16.ico 90KB
35.ico 90KB
32.ico 90KB
39.ico 90KB
15.ico 90KB
29.ico 90KB
6.ico 90KB
23.ico 90KB
28.ico 90KB
21.ico 90KB
38.ico 90KB
26.ico 90KB
8.ico 90KB
7.ico 90KB
20.ico 90KB
25.ico 90KB
1.ico 90KB
30.ico 90KB
0.ico 90KB
18.ico 90KB
4.ico 90KB
burning.mp3 5.81MB
all rise.mp3 5.15MB
辛晓琪-味道.mp3 3.57MB
apologize.mp3 3.18MB
═╝╞м1.png 439KB
自定义.png 189KB
╫╘╢и╥х.png 27KB
未标题-5.png 5KB
未标题-6.png 5KB
未标题-1.png 5KB
未标题-4.png 5KB
未标题-3.png 5KB
未标题-2.png 5KB
pause2.png 4KB
next2.png 4KB
shang.png 4KB
next1.png 4KB
play1.png 3KB
next2.png 3KB
pause1.png 3KB
play2.png 3KB
pause2.png 3KB
shang2.png 3KB
zhuti.png 3KB
adddir1.png 3KB
zhuti2.png 3KB
adddir2.png 3KB
open.png 3KB
open2.png 3KB
miusplay.pro 485B
res.qrc 3KB
mainwindow.ui 12KB
dialog.ui 2KB
form.ui 392B
共 101 条
- 1
- 2
资源评论
寒江独钓2009
- 粉丝: 54
- 资源: 16
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 红外通信电路设计与实验
- 基于matlab实现的拉普拉斯金字塔分解 做毕业设计的可以参考,小波变换以及MGA的初级参考.rar
- 基于matlab实现的拉普拉斯金字塔分解的图像融合源程序.rar
- 基于matlab实现的里面介绍的是使用禁忌搜索求解vrp,只要修改下数据就可以使用,用的是MATLAB写的.rar
- 基于matlab实现的邻接矩阵和级联失效模拟.rar
- 基于matlab实现的论文“连续相空间转换中的级联故障”代码.rar
- 基于matlab实现的全有全无配流法,用于交通分配之用,为交通分配的最为基础的分配方法.rar
- 基于matlab实现的人工神经网络实验-用CHNN算法求解TSP问题.rar
- 基于matlab实现的数值计算及金融运用 ,金融时间序列数据分析 ,MATLAB和其他软件数据连接.rar
- 基于matlab实现的四波混频FWM多波长光纤激光器 光纤长度 掺杂浓度 泵浦功率等对输出激光功率的影响.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功