【问题标题】:Creating auto-scaling Qt UI using Layouts使用布局创建自动缩放 Qt UI
【发布时间】:2014-08-29 17:31:40
【问题描述】:

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

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

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

【问题讨论】:

    标签: qt user-interface qlayout


    【解决方案1】:

    1#基于QWidget新建UI表单:文件->新建文件或项目->Qt->Qt Designer表单类->选择Widget表单模板,next,next,选择project并完成

    2#从左栏添加垂直布局

    3# 之后在 UI 表单上的某个地方单击鼠标右键,其中不只是添加布局,“布局”->“在网格中布局”

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

    5#添加四个横向布局

    6#添加按钮和文字以及你需要的东西

    7#在水平布局之间添加垂直间隔

    8#最终结果:

    【讨论】:

      【解决方案2】:

      我准备了适合您问题的快速代码,请看一下:https://github.com/troyane/StackOverflow-pro/tree/master/creating-auto-scaling-qt-ui-using-layouts

      获取该代码并查看下一个时刻(您可以在 QtCreator 中打开 mainwindow.ui):

      • centralWidget 具有下一个 layoutStretch 参数:1,2,1,1——这意味着,我们将在放置在此垂直布局中的所有项目之间进行下一个关联。
      • TextLabelSmallButtons 都有 Fixed VerticalPolicy
      • BigButtons 都具有Minimum 垂直策略,并将 minimumSize 的高度设置为 100。UPD: 还有maximumSize->height 参数是250 px。因此,可以保证两个 BigButton 的高度不会超过 250 像素。

      看看another answer,那里有很多关于Layouts的文献可供阅读。

      【讨论】:

      • 谢谢。不幸的是,我不希望 Big Buttons 增长到一定程度。有没有办法将大按钮的高度限制在最大值?
      • 当然,请参阅 repo 中的更新答案和更新代码。
      【解决方案3】:

      您可以在每个布局中放置两个垂直间隔。一个应该放在最上面,另一个放在底部:

      【讨论】:

        猜你喜欢
        • 2012-12-11
        • 2014-11-27
        • 1970-01-01
        • 2013-11-07
        • 2013-01-06
        • 1970-01-01
        • 2013-01-04
        • 1970-01-01
        • 2013-04-20
        相关资源
        最近更新 更多