Qt学习14——可拓展对话框

来源:互联网 发布:stm8l101软件复位指令 编辑:程序博客网 时间:2024/06/15 22:22

在信息或窗体显示时,有时候要根据需求将部分信息设置为可切换隐藏和显示状态,我们可以通过可拓展对话框来实现。

可拓展对话框并不是一种对话框类型,而是通过控件、布局设置实现的。

在Designer中,先新建一个对话框,添加两个Widget,用于存放基础信息(baseWidget)和拓展信息(extendWidget),设置垂直布局。在基础信息框中,放置一个按钮,点击按钮显示拓展窗口。拓展窗口实现的原理就是先隐藏extendWidget,点击按钮后显示extendWidget,再次点击隐藏extendWidget。而extendWidget显示的方式有两种,一种是将原对话框底部扩大,增加显示extendWidget,另一种是原对话框大小不变,将原对话框内部布局向上压缩,添加extendWidget。如下图所示:


这两种显示方式的差异源于QVerticalLayout的尺寸约束设置setSizeConstraint()。不同的约束方式会导致显示内容尺寸有变化时做出不同的响应:


可以看到默认设置为最小大小提示minimunSize(),那么在新增内容时会尽可能用最小的窗体尺寸来显示,即使压缩原来的布局。我们这里需要选择SetFixedSize,即大小提示sizeHint(),对项目使用最优大小提示。

ui->verticalLayout->setSizeConstraint(QLayout::SetFixedSize);

示例下载:点此下载

Qt版本:Qt 5.8.0(MSVC 2015,32bit)+Qt Creator 4.2.1

原创粉丝点击