已解决
qt音乐播放器如何构建
来自网友在路上 182882提问 提问时间:2023-09-28 19:21:35阅读次数: 82
最佳答案 问答题库828位专家为你答疑解惑
核心控制函数
//音乐播放器图标的点击connect(labVideoPlayer,SIGNAL(clicked()),this,SLOT(on_labVideoPlayer_clicked()));//搜索网络音乐connect(btnSearch,SIGNAL(clicked()),this,SLOT(on_btnSearch_clicked()));//网络json解析connect(manager ,&QNetworkAccessManager::finished,this,&VideoPlayer::search_slot);connect(manager1 ,&QNetworkAccessManager::finished,this,&VideoPlayer::search_slot1);//点击头像connect(roundHeadWindow,SIGNAL(clicked()),this,SLOT(on_roundHead_clicked()));//播放器背景皮肤connect(btnBackground,SIGNAL(clicked()),this,SLOT(on_btnBackground_clicked()));//添加本地音乐connect(btnAdd,SIGNAL(clicked()),this,SLOT(on_btnAdd_clicked()));//最小化connect(btnMinimize,SIGNAL(clicked()),this,SLOT(on_btnMinimize_clicked()));//最大化connect(btnMaximize,SIGNAL(clicked()),this,SLOT(on_btnMaximize_clicked()));//退出connect(btnExit,SIGNAL(clicked()),this,SLOT(on_btnExit_clicked()));//网络音乐列表connect(btnNetworkVideo,SIGNAL(clicked()),this,SLOT(on_btnNetworkVideo_clicked()));//本地音乐列表connect(btnLocalVideo,SIGNAL(clicked()),this,SLOT(on_btnLocalVideo_clicked()));//歌曲播放相关//歌曲切换connect(videoplayer,SIGNAL(currentMediaChanged(QMediaContent)),this,SLOT(currentMediaChanged()));//歌曲进度改变connect(videoplayer,SIGNAL(positionChanged(qint64)),this,SLOT(positionChanged(qint64)));//歌曲状态改变connect(videoplayer,SIGNAL(mediaStatusChanged(QMediaPlayer::MediaStatus)),this,SLOT(mediaStatusChanged(QMediaPlayer::MediaStatus)));//播放是否暂停connect(videoplayer,SIGNAL(stateChanged(QMediaPlayer::State)),this, SLOT(onStateChanged(QMediaPlayer::State)));//切换到上一首connect(btnPrevious,SIGNAL(clicked()),this,SLOT(on_btnPrevious_clicked()));//播放开始与暂停connect(btnPlay,SIGNAL(clicked()),this,SLOT(on_btnPlay_clicked()));//切换到下一首connect(btnNext,SIGNAL(clicked()),this,SLOT(on_btnNext_clicked()));//静音切换connect(btnMute,SIGNAL(clicked()),this,SLOT(on_btnMute_clicked()));//调整音乐声音connect(sliderMute,SIGNAL(valueChanged(int)),this,SLOT(on_sliderMute_valueChanged(int)));//切换列表播放方式connect(btnPlayMode,SIGNAL(clicked()),this,SLOT(on_btnPlayMode_clicked()));//双击播放网络音乐connect(listWidgetNetworkVideo,SIGNAL(doubleClicked(QModelIndex)),this,SLOT(on_listWidgetNetworkVideo_doubleClicked(QModelIndex)));//双击播放本地音乐connect(listWidgetLocalVideo,SIGNAL(doubleClicked(QModelIndex)),this,SLOT(on_listWidgetLocalVideo_doubleClicked(QModelIndex)));
核心UI函数
//UI创建与初始化
void VideoPlayer::initUI()
{BackgroundPicturePath = ":/videoplayer/videoplayer_background/back1.jpg";//去掉标题栏setWindowFlag(Qt::FramelessWindowHint);//视频播放器的图标labVideoPlayer = new PressLabel();labVideoPlayer->setText("Licona视频");QFont font;font.setWeight(80);font.setPointSize(25);labVideoPlayer->setFont(font);//视频搜索框lineEditSearch = new QLineEdit;lineEditSearch->setStyleSheet("QLineEdit{""border: none;""background-color: rgba(255, 255, 255, 150);""border-style: outset;""border-width: 0px;""border-radius: 10px;""font: bold 14px;""color: rgba(0,0,0,100);""padding: 6px;""}");lineEditSearch->setPlaceholderText("搜索歌曲mv");lineEditSearch->setMinimumWidth(50);//搜索按钮btnSearch = new SearchButton;//头像roundHeadWindow = new RoundHead(this,20);//姓名btnUsername = new QToolButton;btnUsername->setStyleSheet("QToolButton{border:none;}");SqliteDB sqliteDB;sqliteDB.establishDB();QString username;username=sqliteDB.readAccountData().username;btnUsername->setText(username);sqliteDB.closeDB();//播放器背景皮肤btnBackground = new QToolButton;btnBackground->setStyleSheet("QToolButton{border:none; border-image:url(:/videoplayer/videoplayer_icons/skin.png);}");//添加本地歌曲按钮btnAdd = new QToolButton;btnAdd->setStyleSheet("QToolButton{border:none; border-image:url(:/videoplayer/videoplayer_icons/add.png);}");//最小化按钮btnMinimize = new QToolButton;btnMinimize->setStyleSheet("QToolButton{border:none; border-image:url(:/videoplayer/videoplayer_icons/minimum.png);}");//最大化按钮btnMaximize = new QToolButton;btnMaximize->setStyleSheet("QToolButton{border:none; border-image:url(:/videoplayer/videoplayer_icons/maximum.png);}");//退出按钮btnExit = new QToolButton;btnExit->setStyleSheet("QToolButton{border:none; border-image:url(:/videoplayer/videoplayer_icons/exit.png);}");QHBoxLayout *HLay1 = new QHBoxLayout;HLay1->addWidget(labVideoPlayer);HLay1->addSpacing(30);HLay1->addWidget(lineEditSearch);HLay1->addWidget(btnSearch);HLay1->addStretch();HLay1->addWidget(roundHeadWindow);HLay1->addWidget(btnUsername);HLay1->addSpacing(30);HLay1->addWidget(btnBackground);HLay1->addSpacing(50);HLay1->addWidget(btnAdd);HLay1->addWidget(btnMinimize);HLay1->addWidget(btnMaximize);HLay1->addWidget(btnExit);videoWidget = new VideoWidget();btnNetworkVideo = new QToolButton;btnNetworkVideo->setText("网络");btnNetworkVideo->setStyleSheet("QToolButton{border:none;} QToolButton::hover{background-color: rgba(255, 255, 255,150);}");btnLocalVideo = new QToolButton;btnLocalVideo->setText("本地");btnLocalVideo->setStyleSheet("QToolButton{border:none;} QToolButton::hover{background-color: rgba(255, 255, 255,150);}");QHBoxLayout *HLay2 = new QHBoxLayout;HLay2->addWidget(btnNetworkVideo);HLay2->addWidget(btnLocalVideo);stackedWidget = new QStackedWidget;//网络播放列表listWidgetNetworkVideo = new QListWidget();listWidgetNetworkVideo->setStyleSheet("QListWidget{""background-color:transparent;""border-style: solid;""border-left-width: 1px;""border-right-width: 1px;""border-top-width: 1px;""border-bottom-width: 1px;""}");listWidgetLocalVideo = new QListWidget();listWidgetLocalVideo->setStyleSheet("QListWidget{""background-color:transparent;""border-style: solid;""border-left-width: 1px;""border-right-width: 1px;""border-top-width: 1px;""border-bottom-width: 1px;""}");stackedWidget->addWidget(listWidgetNetworkVideo);stackedWidget->addWidget(listWidgetLocalVideo);stackedWidget->setCurrentIndex(0);QVBoxLayout *VLay2 = new QVBoxLayout;VLay2->addLayout(HLay2);VLay2->addWidget(stackedWidget);QHBoxLayout *HLay4 = new QHBoxLayout();HLay4->addWidget(videoWidget,3);HLay4->addSpacing(15);HLay4->addLayout(VLay2,1);HLay4->setMargin(15);//播放控制labVideoInfo = new QLabel;labVideoInfo->setText("无曲目");btnPrevious = new QToolButton;btnPrevious->setStyleSheet("QToolButton{border:none; border-image:url(:/videoplayer/videoplayer_icons/previous.png);}");btnPlay = new QToolButton;btnPlay->setStyleSheet("QToolButton{border:none; border-image:url(:/videoplayer/videoplayer_icons/stop.png);}");btnNext = new QToolButton;btnNext->setStyleSheet("QToolButton{border:none; border-image:url(:/videoplayer/videoplayer_icons/next.png);}");labCurrentTime = new QLabel;labCurrentTime->setText("00:00:00");QFile qssFile(":/qslider/qslider_style/style.qss");qssFile.open(QFile::ReadOnly);QString qss;qss = qssFile.readAll();this->setStyleSheet(qss);sliderDuration = new QSlider(Qt::Horizontal);labTotalTime = new QLabel;labTotalTime->setText("00:00:00");btnMute = new QToolButton;btnMute->setStyleSheet("QToolButton{border:none;border-image: url(:/videoplayer/videoplayer_icons/voice.png);}");sliderMute = new QSlider(Qt::Horizontal);//播放模式,按钮属性设置playMode = "顺序播放";btnPlayMode = new QToolButton;btnPlayMode->setStyleSheet("QToolButton{border:none;border-image: url(:/videoplayer/videoplayer_icons/inorder.png);}");QHBoxLayout *HLay5 = new QHBoxLayout;HLay5->addSpacing(20);HLay5->addWidget(labVideoInfo);HLay5->addWidget(btnPrevious);HLay5->addWidget(btnPlay);HLay5->addWidget(btnNext);HLay5->addStretch();HLay5->addWidget(labCurrentTime);HLay5->addWidget(sliderDuration);HLay5->addWidget(labTotalTime);HLay5->addStretch();HLay5->addWidget(btnMute);HLay5->addWidget(sliderMute);HLay5->addWidget(btnPlayMode);HLay5->addSpacing(15);QVBoxLayout *VLay3 = new QVBoxLayout;VLay3->addLayout(HLay1);VLay3->addLayout(HLay4);VLay3->addLayout(HLay5);setLayout(VLay3);setFixedSize(900,900);}
查看全文
99%的人还看了
相似问题
猜你感兴趣
版权申明
本文"qt音乐播放器如何构建":http://eshow365.cn/6-15313-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!