我有一个在 Qt 中设计得很好的布局,但是当我单击父窗口并将其设置为网格布局时,事情变得很奇怪:
如您所见,左侧的垂直布局坚持比它包含的子元素更宽。标签和树视图都设置为
sizePolicy
Maximum
,最大宽度设置为260px。子项本身保持正确的大小,但包含它们的垂直布局却没有。
中间的垂直布局设置为展开,最右边的设置与左侧相同,只是那个看起来可以工作。如何使第一个垂直布局符合其子级的宽度?
问题很可能是您需要尝试“拉伸”布局。拉伸设置布局单元相对于彼此的大小。默认为 0,表示不发生拉伸。
在你的情况下,我相信你想将第一列(第0列)的拉伸设置为0,将第二列和第三列的拉伸设置为1。这意味着第一列将始终尽可能小,第二列和第三列将尝试同样宽。
您可以非常轻松地以编程方式设置拉伸;例如,将第一列设置为拉伸 0:
layout->setColumnStretch(0, 0);
在 Qt Designer 中,您可以像任何普通属性一样访问列和行拉伸。