小部件的大小与儿童相同?
Widget same size as it's children?
本文关键字:小部 更新时间:2023-10-16
在Qt中,我怎样才能有一个根据子级的大小自动调整大小的小部件?
例如,如果我有一个包含一些QPushButton
的QHBoxLayout
的QGroupBox
,我希望QGroupBox
自动计算它的大小,以便它不会大于也不小于适合所有QPushButton
所需的大小。
理想情况下,我希望能够在Qt Designer中执行此操作,以便我可以创建一个已经知道如何调整QGroupBox
大小的.ui
文件,但是我也开始从.ui
文件中的类派生并手动调整大小。
我尝试将QGroupBox
放置在它自己的布局中(有和没有垫片),但这只会将QGroupBox
调整为尽可能小的大小,以便看不到任何子项。
有两件事需要注意:
-
对分组框中的子项适当设置大小策略。从字面上看,您需要考虑按钮可以做什么 - 很可能,您不希望按钮增大或缩小,因此将它们的大小策略设置为
Fixed
是正确的做法。您可能让按钮水平扩展,因此可以选择MinimumExpanding
的水平策略。 -
在分组框中设置布局的大小约束,以根据您的目标进行操作:
ui->groupbox->layout()->setConstraint(QLayout::SetMinAndMaxSize);
当然,分组框将位于其父窗口中的某些布局内,但这并不重要。
通过子类化 QGroupBox 并覆盖 sizeHint 或其他大小调整函数来循环遍历子项并计算最小边界矩形,您可能会获得最大的运气。 根据分组框的动态程度,管理与新微件的连接可能是一个很小的挑战。
相关文章:
- 比较并显示使用最小值(a,b)和最大值(a、b)升序排列的4个数字
- 最小硬币更换问题(自上而下方法)
- Qt VTK交互风格的信号到小部件
- 芬威克树(BIT).找到具有给定累积频率的最小索引,单位为 O(logN)
- 如何在Qt窗口小部件中使用QStringView(或QStringRef)
- 使用递归的数组的最小值.这是怎么回事
- 为什么在浮点中从大到小会引入更多的误差
- 找到两对数字,使它们的乘积的绝对差最小化
- 如何使用boost::具有嵌套结构和最小代码更改的序列化
- 最大和最小 1 C++函数
- 如何创建一个函数来计算并返回平均值、最大值和最小值
- 我可以做些什么来消除或最小化这种将提供相同功能和行为的代码重复
- 如何将部分流作为参数传递
- 如何在QT中的自定义视频小工具t上绘制矩形
- 在二维数组中查找最小值和最大值?
- 查找矩阵C++中每一列和每一行的最小和最大元素
- 如何找到大于整数的最小数字
- 小字符串优化(调试与发布模式)
- QtDesigner自定义小部件
- C++ 创建小部件数组