【发布时间】:2014-08-29 17:31:40
【问题描述】:
我很感激有关如何创建由四个布局组成并具有以下属性的 Qt UI 的建议。
UI 高度的任何增加都会被布局吸收,如下所示
UI 高度的任何进一步降低都会被特定布局的内容所吸收,例如如下图的两个大按钮
【问题讨论】:
标签: qt user-interface qlayout
我很感激有关如何创建由四个布局组成并具有以下属性的 Qt UI 的建议。
UI 高度的任何增加都会被布局吸收,如下所示
UI 高度的任何进一步降低都会被特定布局的内容所吸收,例如如下图的两个大按钮
【问题讨论】:
标签: qt user-interface qlayout
1#基于QWidget新建UI表单:文件->新建文件或项目->Qt->Qt Designer表单类->选择Widget表单模板,next,next,选择project并完成
2#从左栏添加垂直布局
3# 之后在 UI 表单上的某个地方单击鼠标右键,其中不只是添加布局,“布局”->“在网格中布局”
4#你可以在右侧菜单上调整布局边距(我总是设置5点)
5#添加四个横向布局
6#添加按钮和文字以及你需要的东西
7#在水平布局之间添加垂直间隔
8#最终结果:
【讨论】:
我准备了适合您问题的快速代码,请看一下:https://github.com/troyane/StackOverflow-pro/tree/master/creating-auto-scaling-qt-ui-using-layouts
获取该代码并查看下一个时刻(您可以在 QtCreator 中打开 mainwindow.ui):
centralWidget 具有下一个 layoutStretch 参数:1,2,1,1——这意味着,我们将在放置在此垂直布局中的所有项目之间进行下一个关联。TextLabel 和 SmallButtons 都有 Fixed VerticalPolicyBigButtons 都具有Minimum 垂直策略,并将 minimumSize 的高度设置为 100。UPD: 还有maximumSize->height 参数是250 px。因此,可以保证两个 BigButton 的高度不会超过 250 像素。 看看another answer,那里有很多关于Layouts的文献可供阅读。
【讨论】:
您可以在每个布局中放置两个垂直间隔。一个应该放在最上面,另一个放在底部:
【讨论】: