【问题标题】:QHBoxLayout SpacingQHBoxLayout 间距
【发布时间】:2014-05-01 20:30:12
【问题描述】:

我有一个 QHBoxLayout,其中包括两个 QLabel 小部件。我左边的QLabel 比右边的QLabel 大得多,但是QHBoxLayout 将输出分成两半,所以布局的左侧太小而右侧的布局太大。如何修改QHBoxLayout 为每个包含的小部件创建不等比例的空间?

【问题讨论】:

    标签: c++ qt qwidget qlayout


    【解决方案1】:

    如果需要,并且有可用空间,布局系统应该为较大的标签保留更多空间。

    如果您想强制布局为较大的标签保留特定数量的空间,您可以使用QBoxLayout::setStretch

    例如,如果您想为较大的标签保留 70% 的空间,为较小的标签保留 30% 的空间,您可以这样使用:

    ui->horizontalLayout->setStretch(0, 7);
    ui->horizontalLayout->setStretch(1, 3);
    

    或者,您可以让较小的标签只保留它需要的绝对最小空间,而较大的标签通过使用大小策略来保留尽可能多的空间。

    对于较小的标签,将水平尺寸政策设置为QSizePolicy::Maximum,对于较大的标签,将水平尺寸政策设置为QSizePolicy::Minimum(或QSizePolicy::MinimumExpanding)。

    ui->label_Large->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Preferred);
    ui->label_Small->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Preferred);
    

    您可以查看here 的不同尺寸政策。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-20
      • 2012-09-20
      • 2011-06-08
      • 2015-01-09
      • 2012-04-20
      • 1970-01-01
      • 1970-01-01
      • 2012-12-07
      相关资源
      最近更新 更多