Qt 布局的大小限制
Size constraints for Qt layouts
我的小部件有两种布局。主要布局是 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
,两个布局都将缩小到它们的最小尺寸。但我希望外部布局占据整个 space,而内部布局使用尽可能少的 space。有什么想法吗?
使用垫片作为外部布局的额外小部件。换句话说: spacer 将是 innerlayout 的兄弟姐妹,并将内部布局推到它所需的最小表面。您将需要水平和垂直垫片。
我的小部件有两种布局。主要布局是 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
,两个布局都将缩小到它们的最小尺寸。但我希望外部布局占据整个 space,而内部布局使用尽可能少的 space。有什么想法吗?
使用垫片作为外部布局的额外小部件。换句话说: spacer 将是 innerlayout 的兄弟姐妹,并将内部布局推到它所需的最小表面。您将需要水平和垂直垫片。