今天把歌单模块给弄完了,这个模块还是比较简单的,就是基本的qss 贴图。以及QButtonGroup的基本使用,实现单点按钮的功能。
计划把后面几个模块写完成后,上传代码,希望喜欢我的可以关注,第一时间可以拿到源码。
话不多说,先上我们目标的网易云的界面:
点击对应的按钮会又不同的内容出现,这里还是非常简单的,我实现的效果:
动态图效果:
主要的qss 代码:
/*歌单部分*/
QWidget#picTitle
{
border-image:url(images/pictureMusic/huayu0.png);
}
QWidget#widMus1
{
border-image:url(images/pictureMusic/huayu1.png);
}
QWidget#widMus2
{
border-image:url(images/pictureMusic/huayu2.png);
}
QWidget#widMus3
{
border-image:url(images/pictureMusic/huayu3.png);
}
QWidget#widMus4
{
border-image:url(images/pictureMusic/huayu4.png);
}
QPushButton#ptnChange
{
border:1px solid rgb(216,216,216);
color:rgb(55,55,55);
border-radius:15px;
}
QPushButton::hover#ptnChange
{
border:1px solid rgb(216,216,216);
background:rgb(242,242,242);
color:rgb(55,55,55);
border-radius:15px;
}
/*华语按钮*/
QPushButton#ptn0
{
border:0px;
color:rgb(103,103,103);
border-radius:10px;
}
QPushButton::hover#ptn0
{
border:0px;
background:rgb(253,245,245);
border-radius:10px;
}
QPushButton::checked#ptn0
{
border:0px;
background:rgb(253,245,245);
color:rgb(236,65,65);
border-radius:10px;
}
/*流行按钮*/
QPushButton#ptn1
{
border:0px;
color:rgb(103,103,103);
border-radius:10px;
}
QPushButton::hover#ptn1
{
border:0px;
background:rgb(253,245,245);
border-radius:10px;
}
QPushButton::checked#ptn1
{
border:0px;
background:rgb(253,245,245);
color:rgb(236,65,65);
border-radius:10px;
}
/*摇滚按钮*/
QPushButton#ptn2
{
border:0px;
color:rgb(103,103,103);
border-radius:10px;
}
QPushButton::hover#ptn2
{
border:0px;
background:rgb(253,245,245);
border-radius:10px;
}
QPushButton::checked#ptn2
{
border:0px;
background:rgb(253,245,245);
color:rgb(236,65,65);
border-radius:10px;
}
/*民谣按钮*/
QPushButton#ptn3
{
border:0px;
color:rgb(103,103,103);
border-radius:10px;
}
QPushButton::hover#ptn3
{
border:0px;
background:rgb(253,245,245);
border-radius:10px;
}
QPushButton::checked#ptn3
{
border:0px;
background:rgb(253,245,245);
color:rgb(236,65,65);
border-radius:10px;
}
/*电子按钮 与剩下的部分*/
QPushButton#ptn4,#ptn5,#ptn6,#ptn7,#ptn8,#ptn9
{
border:0px;
color:rgb(103,103,103);
border-radius:10px;
}
QPushButton::hover#ptn4,::hover#ptn5,::hover#ptn6,
::hover#ptn7,::hover#ptn8,::hover#ptn9
{
border:0px;
background:rgb(253,245,245);
border-radius:10px;
}
QPushButton::checked#ptn4,::checked#ptn5,::checked#ptn6,
::checked#ptn7,::checked#ptn8,::checked#ptn9
{
border:0px;
background:rgb(253,245,245);
color:rgb(236,65,65);
border-radius:10px;
}
项目代码部分:
void AllMain::setButtonMus()
{
pButtonMus = new QButtonGroup(this);
pButtonMus->addButton(ui->ptn0,0);
pButtonMus->addButton(ui->ptn1,1);
pButtonMus->addButton(ui->ptn2,2);
pButtonMus->addButton(ui->ptn3,3);
pButtonMus->addButton(ui->ptn4,4);
pButtonMus->addButton(ui->ptn5,5);
pButtonMus->addButton(ui->ptn6,6);
pButtonMus->addButton(ui->ptn7,7);
pButtonMus->addButton(ui->ptn8,8);
pButtonMus->addButton(ui->ptn9,9);
pButtonMus->setExclusive(true);
pButtonMus->button(0)->setChecked(true);
connect(pButtonMus, QOverload<int>::of(&QButtonGroup::buttonClicked),
[=](int id){
setSourceMus(id);
});
}
void AllMain::setSourceMus(int id)
{
QString str = pButtonMus->button(id)->text();
ui->ptnChange->setText(str+" >");
switch (id)
{
//0 华语
case 0:
{
QList<QString> arrHuayu;
for (int i = 0; i<5;i++) {
arrHuayu.append(QString::asprintf("./images/pictureMusic/huayu%d.png",i));
}
QString style = "QWidget#picTitle{border-image:url("+arrHuayu[0]+");}";
ui->picTitle->setStyleSheet(style);
style = "QWidget#widMus1{border-image:url("+arrHuayu[1]+");}";
ui->widMus1->setStyleSheet(style);
style = "QWidget{border-image:url("+arrHuayu[2]+");}";
ui->widMus2->setStyleSheet(style);
style = "QWidget{border-image:url("+arrHuayu[3]+");}";
ui->widMus3->setStyleSheet(style);
style = "QWidget{border-image:url("+arrHuayu[4]+");}";
ui->widMus4->setStyleSheet(style);
break;
}
//流行
case 1:
{
QList<QString> arrLiuxing;
for (int i = 0; i<5;i++) {
arrLiuxing.append(QString::asprintf("./images/pictureMusic/liuxing%d.png",i));
}
QString style = "QWidget#picTitle{border-image:url("+arrLiuxing[0]+");}";
ui->picTitle->setStyleSheet(style);
style = "QWidget#widMus1{border-image:url("+arrLiuxing[1]+");}";
ui->widMus1->setStyleSheet(style);
style = "QWidget{border-image:url("+arrLiuxing[2]+");}";
ui->widMus2->setStyleSheet(style);
style = "QWidget{border-image:url("+arrLiuxing[3]+");}";
ui->widMus3->setStyleSheet(style);
style = "QWidget{border-image:url("+arrLiuxing[4]+");}";
ui->widMus4->setStyleSheet(style);
break;
}
//摇滚
case 2:
{
QList<QString> arrYaogun;
for (int i = 0; i<5;i++) {
arrYaogun.append(QString::asprintf("./images/pictureMusic/yaogun%d.png",i));
}
QString style = "QWidget#picTitle{border-image:url("+arrYaogun[0]+");}";
ui->picTitle->setStyleSheet(style);
style = "QWidget#widMus1{border-image:url("+arrYaogun[1]+");}";
ui->widMus1->setStyleSheet(style);
style = "QWidget{border-image:url("+arrYaogun[2]+");}";
ui->widMus2->setStyleSheet(style);
style = "QWidget{border-image:url("+arrYaogun[3]+");}";
ui->widMus3->setStyleSheet(style);
style = "QWidget{border-image:url("+arrYaogun[4]+");}";
ui->widMus4->setStyleSheet(style);
break;
}
//民谣
case 3:
{
QList<QString> arrMinyao;
for (int i = 0; i<5;i++) {
arrMinyao.append(QString::asprintf("./images/pictureMusic/minyao%d.png",i));
}
QString style = "QWidget#picTitle{border-image:url("+arrMinyao[0]+");}";
ui->picTitle->setStyleSheet(style);
style = "QWidget#widMus1{border-image:url("+arrMinyao[1]+");}";
ui->widMus1->setStyleSheet(style);
style = "QWidget{border-image:url("+arrMinyao[2]+");}";
ui->widMus2->setStyleSheet(style);
style = "QWidget{border-image:url("+arrMinyao[3]+");}";
ui->widMus3->setStyleSheet(style);
style = "QWidget{border-image:url("+arrMinyao[4]+");}";
ui->widMus4->setStyleSheet(style);
break;
}
//电子
case 4:
{
QList<QString> arrDianzi;
for (int i = 0; i<5;i++) {
arrDianzi.append(QString::asprintf("./images/pictureMusic/dianzi%d.png",i));
}
QString style = "QWidget#picTitle{border-image:url("+arrDianzi[0]+");}";
ui->picTitle->setStyleSheet(style);
style = "QWidget#widMus1{border-image:url("+arrDianzi[1]+");}";
ui->widMus1->setStyleSheet(style);
style = "QWidget{border-image:url("+arrDianzi[2]+");}";
ui->widMus2->setStyleSheet(style);
style = "QWidget{border-image:url("+arrDianzi[3]+");}";
ui->widMus3->setStyleSheet(style);
style = "QWidget{border-image:url("+arrDianzi[4]+");}";
ui->widMus4->setStyleSheet(style);
break;
}
//另类
case 5:
{
QList<QString> arrLinglei;
for (int i = 0; i<5;i++) {
arrLinglei.append(QString::asprintf("./images/pictureMusic/linglei%d.png",i));
}
QString style = "QWidget#picTitle{border-image:url("+arrLinglei[0]+");}";
ui->picTitle->setStyleSheet(style);
style = "QWidget#widMus1{border-image:url("+arrLinglei[1]+");}";
ui->widMus1->setStyleSheet(style);
style = "QWidget{border-image:url("+arrLinglei[2]+");}";
ui->widMus2->setStyleSheet(style);
style = "QWidget{border-image:url("+arrLinglei[3]+");}";
ui->widMus3->setStyleSheet(style);
style = "QWidget{border-image:url("+arrLinglei[4]+");}";
ui->widMus4->setStyleSheet(style);
break;
}
//轻音乐
case 6:
{
QList<QString> arrQingyinyue;
for (int i = 0; i<5;i++) {
arrQingyinyue.append(QString::asprintf("./images/pictureMusic/qingyinyue%d.png",i));
}
QString style = "QWidget#picTitle{border-image:url("+arrQingyinyue[0]+");}";
ui->picTitle->setStyleSheet(style);
style = "QWidget#widMus1{border-image:url("+arrQingyinyue[1]+");}";
ui->widMus1->setStyleSheet(style);
style = "QWidget{border-image:url("+arrQingyinyue[2]+");}";
ui->widMus2->setStyleSheet(style);
style = "QWidget{border-image:url("+arrQingyinyue[3]+");}";
ui->widMus3->setStyleSheet(style);
style = "QWidget{border-image:url("+arrQingyinyue[4]+");}";
ui->widMus4->setStyleSheet(style);
break;
}
//综艺
case 7:
{
QList<QString> arrZongyi;
for (int i = 0; i<5;i++) {
arrZongyi.append(QString::asprintf("./images/pictureMusic/zongyi%d.png",i));
}
QString style = "QWidget#picTitle{border-image:url("+arrZongyi[0]+");}";
ui->picTitle->setStyleSheet(style);
style = "QWidget#widMus1{border-image:url("+arrZongyi[1]+");}";
ui->widMus1->setStyleSheet(style);
style = "QWidget{border-image:url("+arrZongyi[2]+");}";
ui->widMus2->setStyleSheet(style);
style = "QWidget{border-image:url("+arrZongyi[3]+");}";
ui->widMus3->setStyleSheet(style);
style = "QWidget{border-image:url("+arrZongyi[4]+");}";
ui->widMus4->setStyleSheet(style);
break;
}
//原声
case 8:
{
QList<QString> arrYuansheng;
for (int i = 0; i<5;i++) {
arrYuansheng.append(QString::asprintf("./images/pictureMusic/yuansheng%d.png",i));
}
QString style = "QWidget#picTitle{border-image:url("+arrYuansheng[0]+");}";
ui->picTitle->setStyleSheet(style);
style = "QWidget#widMus1{border-image:url("+arrYuansheng[1]+");}";
ui->widMus1->setStyleSheet(style);
style = "QWidget{border-image:url("+arrYuansheng[2]+");}";
ui->widMus2->setStyleSheet(style);
style = "QWidget{border-image:url("+arrYuansheng[3]+");}";
ui->widMus3->setStyleSheet(style);
style = "QWidget{border-image:url("+arrYuansheng[4]+");}";
ui->widMus4->setStyleSheet(style);
break;
}
//ACG
case 9:
{
QList<QString> arrAcg;
for (int i = 0; i<5;i++) {
arrAcg.append(QString::asprintf("./images/pictureMusic/Acg%d.png",i));
}
QString style = "QWidget#picTitle{border-image:url("+arrAcg[0]+");}";
ui->picTitle->setStyleSheet(style);
style = "QWidget#widMus1{border-image:url("+arrAcg[1]+");}";
ui->widMus1->setStyleSheet(style);
style = "QWidget{border-image:url("+arrAcg[2]+");}";
ui->widMus2->setStyleSheet(style);
style = "QWidget{border-image:url("+arrAcg[3]+");}";
ui->widMus3->setStyleSheet(style);
style = "QWidget{border-image:url("+arrAcg[4]+");}";
ui->widMus4->setStyleSheet(style);
break;
}
default:
break;
}
}