2

我有一个在 Qt 中设计得很好的布局,但是当我单击父窗口并将其设置为网格布局时,一切都变得很不稳定。我已经阅读了我能找到的所有教程以及 Qt 设计器手册,但无法弄清楚为什么会发生这种情况。我附上了一个屏幕截图来显示问题: 在此处输入图像描述

正如你所看到的,左边的垂直布局坚持比它包含的孩子更宽。label 和 treeview 都设置为 sizePolicy 最大值,最大宽度设置为 260px。孩子们自己保持正确的大小,但包含它们的垂直布局却没有。

中间的垂直布局设置为展开,最右侧的设置与左侧的设置相同,只有一个似乎可以使用。如何使第一个垂直布局符合它的孩子的宽度?

另外,如果我可以偷偷问第二个问题,我在右下角的选项卡小部件内有一个 QTextEdit,但它不会填充以占用完整选项卡视图的空间。您在屏幕截图中看不到这一点,但如果我将 tabview 拉起,其中的 textedit 不会随之拉伸。如何使它符合标签的大小?它已经设置为 sizePolicy 扩展,但这似乎没有帮助。

4

1 回答 1

3

问题很可能是您需要尝试“拉伸”布局。Stretch 设置布局单元格彼此之间的关系。默认值为 0,表示不发生拉伸。

在您的情况下,我相信您希望将第一列(第 0 列)的拉伸设置为 0,将第二列和第三列的拉伸设置为 1。这意味着第一列将始终尽可能小,并且第二列和第三列将尽量等宽。

您可以很容易地以编程方式设置拉伸;例如,要将第一列设置为拉伸 0:

layout->setColumnStretch(0, 0);

在 Qt Designer 中,您可以像访问任何普通属性一样访问列和行延伸。

于 2012-04-28T14:59:00.000 回答