在 Qt 表单的不同布局中调整按钮大小

Posted

技术标签:

【中文标题】在 Qt 表单的不同布局中调整按钮大小【英文标题】:Resize buttons in different layouts of Qt form 【发布时间】:2017-04-07 17:47:52 【问题描述】:

抱歉英语不好。我有 2 个带有按钮和文本编辑的水平布局和一个带有按钮的网格布局。表单具有垂直布局。我需要带有文本编辑的按钮在垂直方向上调整大小与网格布局中的按钮相同。现在我只能调整表单大小的一部分:当水平布局中的按钮具有大小策略扩展时,网格布局不会调整大小,否则只会调整网格布局大小。

截图

mainwindow.ui file

【问题讨论】:

您是否考虑过仅使用一个QGridLayout 来布局所有内容?不知道如何使用 Qt Designer 执行此操作,但在 C++ 中,很容易将 QWidgets 附加到多行和/或多列。 我没有时间浏览一千行 UI 文件,但是......从图像看起来你需要分配 all 的垂直拉伸到网格布局。 谢谢,将所有内容添加到网格布局有助于imgur.com/a/lY0Uu 这确实是一种可能,但取决于你想要什么,我的回答会给你更多的灵活性。 【参考方案1】:

问题在于centralWidget的verticalLayout(QVBoxLayout)的拉伸分布。目前空间在两个垂直布局和网格布局上相当均匀地分布(考虑到最小尺寸)。您可能想要的是 1(垂直布局)到 7(网格布局)的分布,因为网格布局中有 7 行。因此,您应该将 centralWidget > Layout > layoutStretch 因子更改为 1,1,0,7。 (0 是竖线)

【讨论】:

[...] 因为网格布局中有 7 行。这是我遇到类似问题时从未想过的事情。学到了新东西!

以上是关于在 Qt 表单的不同布局中调整按钮大小的主要内容,如果未能解决你的问题,请参考以下文章

qt页面布局调整不了控件大小

QT 使用 QT Designer 调整布局大小?

如何在 Qt 表单类中调整 OpenGL 小部件的大小

更改 Qt 布局中的调整大小行为

刷新与调整浏览器窗口大小时网格布局呈现不同

win10qt软件控件大小