在这里插入图片描述


利用布局,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打勾,这样就是实现完整的抽屉效果。

在这里插入图片描述


Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐