c++ - 当父尺寸改变时如何改变子部件的尺寸?
问题描述
我有 2 个小部件,第二个小部件是第一个小部件的子级。我以为如果你改变父小部件的大小,子小部件也会改变它的大小,但事实并非如此。我在互联网上搜索了我的问题的解决方案,但也许我在寻找解决方案时没有正确地提出我的问题。我没有找到解决方案,因此在这里写了。
调整父级大小时,我应该怎么做才能使子级小部件改变其大小?
解决方案
好吧,无布局的解决方案非常明显:覆盖resizeEvent
父级中的方法并驱动子级从那里调整大小。
另一方面,将子小部件保留在父小部件布局中将允许它自动与父小部件一起调整大小,但您的问题是:如何将子小部件位置设置为选择的坐标?
我建议一种技术。
假设您希望孩子水平移动。给父级一个QHBoxLayout
布局(将布局边距和间距属性设置为0
),并将子级添加到其中,因此它将水平占用整个空间。然后QWidget
在左侧子元素的相同布局中添加一个:此小部件将充当填充物。如果您希望孩子为 42 岁,请使用其方法以编程方式x
将填充物设置为 42 ,或者将其最小和最大宽度从设计器设置为 42。width
setFixedWidth
显然,如果您有很多孩子,并且他们可以在任何地方移动(并且可能重叠)完全放弃布局并诉诸我的第一个建议,因为一般来说,布局旨在使事物彼此锚定,也许那不是案子。
推荐阅读
- vagrant - 无法通过“vagrant ssh”连接到使用“vagrant package”创建的 vagrant box
- firemonkey - TScrollBox 或 TChart 内存泄漏(FMX、C++)
- html - 如何将水平线延伸到页面容器的边缘?
- c++ - 使用 (void*) cast 打印字符串中字符的内存地址
- reactjs - 使用 componentDidUpdate() 当你的状态是一个对象数组时如何避免无限循环?
- sql - 如何对 CASE 语句中创建的列进行分组
- c++ - 如何在 C++ 中修复“对 Array::Array(unsigned long) 的未定义引用”?
- ios - 当应用程序进入后台时显示覆盖所有内容的窗口
- python - 如何仅使用特定域名限制登录 google api?
- r - 在数据框中按因子应用 approxfun