QHBoxLayout2 を含むを取得しました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すると、実際には使用可能なすべてのスペースを占有します。それはどのように適合しますか?
ありがとうございます!