c++ - 删除子布局时如何让 QVBoxLayout 收缩 QDialog?

标签 c++ qt

我有一个 QDialog 和一个 QVBoxLayout 控制它的高度。

这个主要的 QVBoxLayout 由一个或多个 QVBoxLayout child 组成,后面是一些其他小部件。当我添加额外的 QVBoxLayout 子项(和/或较低的小部件)时,对话框会扩展以容纳它们 - 正如您所期望的,也是我想要的。

但是,当我从父 QVBoxLayout 中删除 QVBoxLayout 子项时,对话框的大小不会调整为与删除的 QVBoxLayout 大小相等的大小 - 它只是保持相同大小,但空白区域大得难看。

如何在 QVBoxLayout/QDialog 中实现正确的动态行为,以便在从 QVBoxLayout 中删除子组件时正确调整对话框的大小?

最佳答案

确保你调用了mainLayoutPtr->setSizeConstraint(QLayout::SetFixedSize)(这也会让用户无法调整对话框的大小,但它可以在小部件隐藏/显示时正确调整大小)

关于c++ - 删除子布局时如何让 QVBoxLayout 收缩 QDialog?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17025356/

相关文章:

qt - 如何访问QML listview的委托(delegate)内部的数据?

c++ - QPluginLoader 实例总是返回 null

c++ - 如何覆盖基类的 (->) 运算符的成员

c++ - 如何在模板函数或类中实例化包含类型的容器变量?

c++ - 我使用 Qt 的多线程应用程序出了什么问题(错误 SIGSEGV)

c++ - 如何在 QHBoxLayout 左、中、右对齐子项

c++ - 具有默认类型的可变参数模板

c++ - 在 C++ 98 中优化 vector 过滤

java - C++ 的类变量是否可以像 Java 一样在没有构造函数的情况下进行初始化?

c++ - 从 C++ 更新 QML 文本