利用布局,widget和ScrollArea实现的抽屉效果如下:
思路就是将scrollArea设定为垂直布局,然后加入按钮和widget,当鼠标点击按钮后,隐藏widget,利用垂直布局,做到自然伸缩,然后为什么要使用scrollArea做容器,因为scrollArea可以实现当容器空间不足,出现进度条进行列表滑动,下面一步一步来实现。
首先拖拽一个scrollArea,并拖拽几个按钮和widget放进scrollArea,并将scrollArea设定为垂直布局
为按钮添加槽,当按钮被点击时,widget执行setVisible(false)函数,widget被隐藏,利用布局自动排列,可以看到widget好像被合起。
bool iswiedet_1=true;
void MainWindow::on_pushButton_5_clicked()
{
if(iswiedet_1==true)
{
ui->widget_2->setVisible(false);
iswiedet_1=false;
return;
}
ui->widget_2->setVisible(true);
iswiedet_1=true;
}
到此就,就实现了如下效果:
现在,我们就可以在对应的widget添加我们需要的控件,但是目前还缺少一种东西,就是当列表铺满窗体,自动出现滑动条,ScrollArea可以帮助我们,将以上控件拖到ScrollArea里面,并将ScrollArea设置垂直布局,并将widgetResizable打勾,这样就是实现完整的抽屉效果。