基于Qt模仿网易云音乐界面,目前只实现了部分界面,后续继续完善改造。
部分代码:

#ifndef MYSQLDATAMGR_H
#define MYSQLDATAMGR_H#include <QObject>
#include <QDebug>
#include <QSqlDatabase>
#include <QSqlQuery>/*** @brief The MySqlDataMgr class* 数据库管理类*/
class MySqlDataMgr
{private:MySqlDataMgr();MySqlDataMgr(const MySqlDataMgr&);~MySqlDataMgr();
public:static MySqlDataMgr* getInstance();bool InitSqlDatabase();
private:static MySqlDataMgr* m_pSqlDataMgr;
};#endif // MYSQLDATAMGR_H
#include "MySqlDataMgr.h"MySqlDataMgr* MySqlDataMgr::m_pSqlDataMgr=nullptr;
MySqlDataMgr::MySqlDataMgr()
{}MySqlDataMgr::~MySqlDataMgr()
{if(m_pSqlDataMgr){delete m_pSqlDataMgr;}
}MySqlDataMgr *MySqlDataMgr::getInstance()
{if(m_pSqlDataMgr==nullptr){return new MySqlDataMgr();}return m_pSqlDataMgr;
}bool MySqlDataMgr::InitSqlDatabase()
{QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");db.setHostName("127.0.0.1");db.setPort(3306);db.setUserName("root");db.setPassword("123123");db.setDatabaseName("musicmgr");if(!db.open()){qDebug()<<"Mysql Error! "<<endl;return false;}return true;
}
#ifndef RIGHTMENU_H
#define RIGHTMENU_H#include <QWidget>
#include <QPushButton>
#include <QLayout>
#include <QLabel>
#include <QComboBox>/***右侧菜单栏窗口*/
namespace Ui {class RightMenu;
}
enum RightType{FindMusic,//发现音乐信号Video,//视频信号Friend,//朋友信号Streaming,//直播信号FM,//私人FM信号LocalMusic,//本地音乐信号DownLoad,//下载管理信号Storage,//我的音乐云盘信号Radio,//我的电台信号Collect,//我的收藏信号LoveMusic,//我喜欢的音乐信号NewMusic,//新
};
class RightMenu : public QWidget
{Q_OBJECTpublic:explicit RightMenu(QWidget *parent = nullptr);~RightMenu();
private:void InitMenu();//初始化菜单void addIconAndTextButton();//添加按钮void addButton();//加入按钮QPushButton* CreateButton(const QString& sImage,const QString& sText);
signals:void ClickRightType(RightType RightMenuType);//发现音乐信号
private:QVBoxLayout* pHLayout;QVBoxLayout* pButtonGroupLayout;QVBoxLayout* pTopButtonLayout;bool isCliek=true;
private:Ui::RightMenu *ui;
};#endif // RIGHTMENU_H
#include "RightMenu.h"
#include "ui_RightMenu.h"RightMenu::RightMenu(QWidget *parent) :QWidget(parent),ui(new Ui::RightMenu)
{ui->setupUi(this);InitMenu();
}RightMenu::~RightMenu()
{delete ui;
}void RightMenu::InitMenu()
{addIconAndTextButton();addButton();pHLayout = new QVBoxLayout();pHLayout->addLayout(pTopButtonLayout);pHLayout->addLayout(pButtonGroupLayout);pHLayout->setSpacing(10);this->setLayout(pHLayout);
}void RightMenu::addButton()
{pTopButtonLayout = new QVBoxLayout();QPushButton *pFindMusic = new QPushButton(u8"发现音乐");connect(pFindMusic,&QPushButton::clicked,[=](){emit ClickRightType(FindMusic);});QPushButton *pVideo = new QPushButton(u8"视频");connect(pVideo,&QPushButton::clicked,[=](){emit ClickRightType(Video);});QPushButton *pFriend = new QPushButton(u8"朋友");connect(pFriend,&QPushButton::clicked,[=](){emit ClickRightType(Friend);});QPushButton *pStreaming = new QPushButton(u8"直播");connect(pStreaming,&QPushButton::clicked,[=](){emit ClickRightType(Streaming);});QPushButton *pFM = new QPushButton(u8"私人FM");connect(pFM,&QPushButton::clicked,[=](){emit ClickRightType(FM);});pTopButtonLayout->addWidget(pFindMusic);pTopButtonLayout->addWidget(pVideo);pTopButtonLayout->addWidget(pFriend);pTopButtonLayout->addWidget(pStreaming);pTopButtonLayout->addWidget(pFM);pTopButtonLayout->setSpacing(0);
}void RightMenu::addIconAndTextButton()
{pButtonGroupLayout = new QVBoxLayout();QPushButton *pLocalMusic = CreateButton(u8":/Icons/Music.png",u8"本地音乐");connect(pLocalMusic,&QPushButton::clicked,[=](){emit ClickRightType(LocalMusic);});QPushButton *pDownLoad = CreateButton(u8":/Icons/download.png",u8"下载管理");connect(pDownLoad,&QPushButton::clicked,[=](){emit ClickRightType(DownLoad);});QPushButton *pStorage = CreateButton(u8":/Icons/storage.png",u8"我的音乐云盘");connect(pStorage,&QPushButton::clicked,[=](){emit ClickRightType(Storage);});QPushButton *pRadio = CreateButton(u8":/Icons/Radio.png",u8"我的电台");connect(pRadio,&QPushButton::clicked,[=](){emit ClickRightType(Radio);});QPushButton *pCollect = CreateButton(u8":/Icons/collect.png",u8"我的收藏");connect(pCollect,&QPushButton::clicked,[=](){emit ClickRightType(Collect);});QLabel* pLel = new QLabel(u8"我的音乐");pLel->setFixedHeight(20);pButtonGroupLayout->addWidget(pLel);pButtonGroupLayout->addWidget(pLocalMusic);pButtonGroupLayout->addWidget(pDownLoad);pButtonGroupLayout->addWidget(pStorage);pButtonGroupLayout->addWidget(pRadio);pButtonGroupLayout->addWidget(pCollect);pButtonGroupLayout->setSpacing(0);QPushButton* pCreateSongList = new QPushButton(u8"创建的歌单");pCreateSongList->setIcon(QIcon(u8":/Icons/RightArrows.png"));pCreateSongList->setLayoutDirection(Qt::RightToLeft);pCreateSongList->setStyleSheet("background-color:rgb(19,112,190,0);border:none;""color:#BDBDBD;font-size:15px;height:30;""back-ground-origin:content;  padding-right:5px;");pButtonGroupLayout->addWidget(pCreateSongList);QPushButton* pLoveMusic= new QPushButton(u8"我喜欢的音乐");pLoveMusic->setIcon(QIcon(u8":/Icons/Love.png"));pLoveMusic->setLayoutDirection(Qt::LeftToRight);connect(pLoveMusic,&QPushButton::clicked,[=](){emit ClickRightType(LoveMusic);});QPushButton* pNewMusic= new QPushButton(u8"新");pNewMusic->setIcon(QIcon(u8":/Icons/New.png"));pNewMusic->setLayoutDirection(Qt::LeftToRight);connect(pNewMusic,&QPushButton::clicked,[=](){emit ClickRightType(NewMusic);});pButtonGroupLayout->addWidget(pLoveMusic);pButtonGroupLayout->addWidget(pNewMusic);connect(pCreateSongList,&QPushButton::clicked,[=]()mutable{if(isCliek){pLoveMusic->hide();pNewMusic->hide();pCreateSongList->setIcon(QIcon(u8":/Icons/RightArrows.png"));pCreateSongList->setLayoutDirection(Qt::RightToLeft);isCliek=false;return;}if(!isCliek){pLoveMusic->show();pNewMusic->show();pCreateSongList->setIcon(QIcon(u8":/Icons/BottomArrows.png"));pCreateSongList->setLayoutDirection(Qt::RightToLeft);isCliek=true;return;}});
}QPushButton *RightMenu::CreateButton(const QString &sImage, const QString &sText)
{QPushButton* pButton = new QPushButton();pButton->setIcon(QIcon(sImage));pButton->setText(sText);pButton->setLayoutDirection(Qt::LeftToRight);return pButton;
}

QQ:1594932770

基于Qt模仿网易云音乐播放器相关推荐

  1. 树莓派云音乐c语言,基于树莓派的红外遥控版网易云音乐播放器

    基于树莓派的红外遥控版网易云音乐播放器.下面是遥控键盘示意图: CH- CH CH+ << >> || - + EQ 0 100+ 200+ 1 2 3 4 5 6 7 8 9 ...

  2. linux树莓派网易云音乐,基于树莓派的红外遥控版网易云音乐播放器

    基于树莓派的红外遥控版网易云音乐播放器.下面是遥控键盘示意图: CH- CH CH+ << >> || - + EQ 0 100+ 200+ 1 2 3 4 5 6 7 8 9 ...

  3. HTML+CSS+JAVASCRIPT 高仿低配网页版网易云音乐播放器 1

    HTML+CSS+JAVASCRIPT 高仿低配网页版网易云音乐播放器 前言 没有使用任何框架,只是想用最简单纯js的代码实现下 前台: Javascript+jQuery 后台: php/nodej ...

  4. 移动应用开发——uni-app框架 仿网易云音乐播放器学习心得

    目录 一.uni-app框架介绍 1.什么是 uni-app 2.为什么要选择uni-app 3.uni-app 统一规范 4.uni-app功能框架 二.开发工具与项目创建 1.开发工具 2.项目创 ...

  5. 第三方网易云音乐播放器ieaseMusic Mac中文版v1.3.4版

    ieasemusic mac中文版是目前mac平台上最好的网易云音乐播放器,与网易云音乐官方客户端最大的区别是,官方的就是「客户端」,完全按照其产品内容进行直接堆砌布局,而 ieaseMusic 是基 ...

  6. HTML网页调用 网易云 音乐播放器代码

    表现形式一:单曲播放 调用代码: <iframe frameborder="no" border="0" marginwidth="0" ...

  7. vue3 + TypeScript + vant +pinia 实现网易云音乐播放器

    vue3 + TypeScript + vant +pinia 实现网易云音乐播放器 实现功能 每日推荐 私人FM 歌单广场 排行榜 歌手 歌曲播放 mv播放 上下滑动切换 云盘上传 用户登录 歌单创 ...

  8. YesPlayMusic:一个高颜值多音频资源的网易云音乐播放器

    都2023年了还有人不知道这款开源免费下载的多音频,高颜值的音乐播放器吗(文末有下载地址) 首先我们来看一下YesPlayMusic的特性 和网易云音乐播放器的功能大同小异,少了歌曲评论的功能,这个功 ...

  9. 静态博客网页中的网易云音乐播放器

    见我的博客 https://blog.wyue.site/2020/04/12/1/ 转载前请联系我,联系方式请见我博客 https://blog.wyue.site/ 一直想做个博客中的音乐播放器, ...

最新文章

  1. 假定某计算机的cpu,假定某计算机字长16位,CPU内部结构如图5.1所示,CPU和存储器之间采用同步方式通信,按字编址。采_搜题易...
  2. Cisco路由器的安全配置简易方案
  3. 【 FPGA 】超声波测距小实验(一)
  4. 王者荣耀服务器维护1月9号,王者荣耀1月9日维护到几点 王者荣耀1月9日几点能上游戏?...
  5. 怎么获取codeforces的数据_手把手教你学会新媒体运营——如何通过数据分析来优化新媒体运营...
  6. 《Google官方SEO指南》十一:以恰当的方式推广你的网站
  7. android刷新时的圆形动画_【Android】圆形揭露动画
  8. pythonb超分辨成像_深度原理与框架-图像超分辨重构-tensorlayer
  9. java自带的jvm在哪里看_使用jdk工具查看jvm笔记
  10. char添加一个字符_LINUX字符设备驱动模型分析(起始篇)
  11. 喜马拉雅 xm文件转m4a_录音转文字:学习/办公/生活都极为实用!
  12. Tcl Tutorial 笔记8 · proc
  13. html点击标签c,html - 标签并以html形式输入点击其他提交按钮(所有浏览器) - 堆栈内存溢出...
  14. 「前端早读君008」新手必踩坑之display: inline-block
  15. 通达信指标转python_python转换通达信股票数据
  16. winserver2008 安装elasticsearch
  17. 3Q之战广东高院上演“熟人新案”
  18. Going Deeper with Convolutions——GoogLeNet论文翻译——中英文对照
  19. 全球及中国面膜行业消费格局与十四五趋势分析报告2022年
  20. 机器学习工程师 — Udacity 电影评分的 k 均值聚类

热门文章

  1. 中小学语文在线学习辅导哪家好?优质课程随你挑
  2. 台积电股价突破万亿大关 创下台股历史新高
  3. Python框架篇:结构化的网页抓取框架-Scrapy
  4. GlassFish主配置文件domain.xml介绍
  5. 第三回 无处不在的计算
  6. 搜索引擎(大数据检索)论述[elasticsearch原理相关]
  7. 通读c++ primer
  8. 虚拟机装系统出现 ntldr is missing(NTLDR丢失)、无法正常开机、解决方法
  9. stm32f105vct6例程_stm32f105例程 CAN500K USART_LED
  10. iOS 卡顿、掉帧原因+优化