【发布时间】:2013-02-12 00:57:30
【问题描述】:
我有一个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 实际上会使它们占据所有可用空间。它是如何组合在一起的?
谢谢!
【问题讨论】:
标签: qt user-interface