Qt布局的大小限制

  • 本文关键字:布局 Qt qt qt5 qlayout
  • 更新时间 :
  • 英文 :


我的小部件有两种布局。主布局是outerLayout,它应该始终占据整个小部件。这包含一个QLabel和一个名为innerLayout的第二布局。

innerLayout应位于outerLayout的中心,并且其大小应仅足以容纳其小部件。我已经为这两种布局设置了大小约束,但在下面的代码中,innerLayout将展开以填充outerLayout

outerLayout = new QVBoxLayout();
outerLayout->addWidget(label);
outerLayout->setSizeConstraint(QLayout::SetMaximumSize);
innerLayout = new QGridLayout();
innerLayout->setAlignment(Qt::AlignHCenter);
innerLayout->setSizeConstraint(QLayout::SetFixedSize);
outerLayout ->addLayout(innerLayout);
setLayout(outerLayout);

如果我将两个布局的大小约束都设置为SetFixedSize,则两个布局都将缩小到其最小大小。但我希望外部布局占据整个空间,内部布局使用尽可能小的空间。有什么想法吗?

使用间隔符作为outerlayout的额外小部件。换句话说:间隔器将是内部布局的兄弟,并将内部布局推到所需的最小表面。您将需要水平和垂直垫片。

最新更新