实现效果

代码
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QHBoxLayout>
#include <QVBoxLayout>
#include <QVideoWidget>
#include <QMediaPlayer>
#include <QPushButton>
#include <QSlider>
#include <QComboBox>
#include <QListWidget>
#include <QLabel>
#include <QTimer>
namespace Ui {
class Widget;
}
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = nullptr);
~Widget();
public slots:
void openFile();
void playSong();
void doubleClickPlay(QListWidgetItem *item);
void setTimeSlider(qint64 duration);
void updateTimeSlider(qint64 position);
void updateTime_NameShow();
void updateSingPos(int positoin);
void updateVolume(int positoin);
void pre();
void next();
private:
Ui::Widget *ui;
QMediaPlayer *mediaPlayer;
QVBoxLayout *vbox;
QHBoxLayout *hbox1;
QHBoxLayout *hbox2;
QHBoxLayout *hbox3;
QPushButton *openBtn;
QPushButton *upBtn;
QPushButton *downBtn;
QPushButton *playBtn;
QComboBox *comboBox;
QSlider *volumeSlider;
QSlider *timeSlider;
QListWidget *listWidget;
QLabel *label;
QLabel *labName;
int n;
QString singName;
QTimer *timer;
QStringList nameList;
int index;
};
#endif
#include "widget.h"
#include "ui_widget.h"
#include <QFileDialog>
#include <QTime>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
this->vbox = new QVBoxLayout(this);
this->setLayout(this->vbox);
this->hbox1 = new QHBoxLayout(this);
this->hbox2 = new QHBoxLayout(this);
this->hbox3 = new QHBoxLayout(this);
this->mediaPlayer = new QMediaPlayer(this);
this->listWidget = new QListWidget(this);
this->label = new QLabel("00:00/00:00",this);
this->labName = new