我有一个QHBoxLayout
,其中包含 2 QWidgets
。这两个QWidgets
都具有固定的纵横比(正方形),并且通过执行以下操作具有最小扩展QSizePolicy
:
QSizePolicy policy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding);
policy.setHeightForWidth(true);
setSizePolicy(policy);
并heightForWidth
像这样实现:
virtual int heightForWidth (int w) const override {
return w;
}
现在,我希望这些小部件在我的布局中居中。因此,我将它们添加到这样的布局中:
layout->addWidget(widget1, 0, Qt::AlignCenter);
但是,像这样,它们最终会以自己喜欢的大小结束,但不会占用所有可用空间。这是为什么?似乎 Qt::AlignCenter 覆盖了我的 SizePolicy?!
相反,使用Qt::AlignVCenter
实际上会使它们占据所有可用空间。这怎么搭配?
谢谢!