web-dev-qa-db-ja.com

ウィンドウサイズに合わせてQtウィジェットを成長させる方法は?

親ウィジェットに合わせて拡大する小さなQFormLayoutが必要です。

Qt DesignerでQWidgetテンプレートを使用して、新しい。uiファイルを作成しました。 「ウィンドウ」内にQFormLayoutを配置し、次にQFormLayout内にいくつかのコントロールを配置します。

これはすべてうまく機能しますが、QFormLayoutは常にQt Designerで設定したサイズのままです。 QFormLayoutが親ウィジェットを満たし、それで拡大/縮小することを望みます。

どうすればそれを達成できますか?

79
bastibe

Designerで、centralWidgetをアクティブにして、レイアウトを割り当てます。水平または垂直レイアウト。その後、QFormLayoutは自動的にサイズ変更されます。

Image of Designer

すべてのウィジェットにレイアウトがあることを常に確認してください!そうしないと、そのウィジェットで自動サイズ変更が壊れます!

こちらもご覧ください

QtDesignerでは、コントロールは大きすぎると主張し、サイズ変更しません

115
Jens

Centralwidgetに少なくとも1つの子を追加するまで、centralwidgetにレイアウトを割り当てることは不可能であることがわかりました。次に、赤い「無効」マークの付いた小さなアイコンを強調表示し、上部のデザイナーツールバーでレイアウトをクリックします。

少なくともQT5では、受け入れられた答え(その画像)が間違っています。代わりに、ルートオブジェクト/ウィジェットにレイアウトを割り当てる必要があります(前述の画像を指す、MainWindowではなくcentralWidgetにする必要があります)。また、これを機能させるには、その下に少なくとも1つのQObjectを作成する必要があることに注意してください。これを行うと、UIはウィンドウのサイズ変更に反応します。

3
Nikos