使用布局创建自动缩放Qt UI

时间:2014-08-29 17:31:40

标签: qt user-interface qlayout

我很感激建议如何创建一个由四个布局组成的Qt UI并具有以下属性。

  1. UI高度的任何增加都会被布局吸收,如下所示 enter image description here

  2. UI的高度的任何进一步降低被特定布局的内容吸收,例如,两个大按钮如下图所示 enter image description here

3 个答案:

答案 0 :(得分:6)

1#基于QWidget创建新的UI表单:文件 - >新文件或项目 - > Qt - > Qt Designer表单类 - >选择窗口小部件表单模板,然后选择项目并完成

2#从左栏添加垂直布局

enter image description here

3#之后点击UI表格上的某个地方,不仅仅是添加了布局,"布局" - > "在网格中布局"

enter image description here

4#您可以在右侧菜单上调整布局边距(我总是设置5个点)

5#添加四个水平布局

enter image description here

6#添加按钮和文字以及您需要的内容

enter image description here

7#在水平布局

之间添加垂直垫片

enter image description here

8#最终结果:

enter image description here enter image description here enter image description here

答案 1 :(得分:1)

我准备了适合您问题的快速代码,请查看: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且两个SmallButton都有Fixed VerticalPolicy
  • 两个BigButton都有Minimum垂直政策,并将minimumSize的高度设置为100. UPD:另外maximumSize - > height参数为250 px。因此,可以保证两个BigButton的高度不会超过250像素。

看看another answer,你可以在那里找到很多关于布局的文献。

答案 2 :(得分:0)

您可以在每个布局中放置两个垂直垫片。一个应放在最顶层,另一个放在底部:

enter image description here