不管怎么弄,布局上的标签都那么大,怎么破。

附上源代码,求大神拯救。
#include "index.h"
#include <QGridLayout>
Index::Index(QWidget *parent)
: QWidget(parent)
{
setWindowTitle("清爽音乐播放器");
setGeometry(90,90,400,600);
music=new QMediaPlayer(this);
nameLabel=new QLabel("未选择歌曲");
slide=new QSlider(Qt::Horizontal);
slide->setValue(0);
backBtn=new QPushButton("后退");
forwardBtn=new QPushButton("快进");
pauseBtn=new QPushButton("暂停");
list=new QListView;
openFileBtn=new QPushButton("打开");
connect(openFileBtn,SIGNAL(clicked(bool)),this,SLOT(addFiles()));
QVBoxLayout *vLayout=new QVBoxLayout();
vLayout->addWidget(nameLabel,1,Qt::AlignCenter);
vLayout->setSpacing(5);
vLayout->setMargin(10);
vLayout->addWidget(slide,Qt::AlignCenter);
QHBoxLayout *hLayout=new QHBoxLayout();
hLayout->addWidget(backBtn,Qt::AlignLeft);
hLayout->addWidget(pauseBtn,Qt::AlignCenter);
hLayout->addWidget(forwardBtn,Qt::AlignRight);
QGridLayout *mainLayout=new QGridLayout(this);
mainLayout->addLayout(vLayout,0,0,Qt::AlignCenter);
mainLayout->addLayout(hLayout,1,0,1,1,Qt::AlignCenter);
mainLayout->addWidget(list,2,0,1,5,Qt::AlignCenter);
mainLayout->setMargin(10);
}
void Index::addFiles()
{
QString path=QFileDialog::getOpenFileName(this,"选择音乐文件","/");
nameLabel->setText(path);
music->setMedia(QUrl(path));
music->play();
}
Index::~Index()
{
}
------解决思路----------------------
方法一:设置label的SizePolicy,就可以了
nameLabel->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
list->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
方法二:先把界面第三行水平布局,再纵向布局就可以了
最后加一句vLayout->addStretch();