レイアウトは実はわかりやすい「と思う」もの。:)
レイアウトの簡単な説明は、QT の本「C++ Gui programming with QT 2nd edition」にあります。
レイアウトとそのサイズ ポリシーに関する注意事項
- ほとんどの Qt ウィジェットにはサイズ ポリシーがあります。このサイズ ポリシーは、ウィジェットがどのように伸縮するかをシステムに伝えます。クラス QSizePolicy から取得されます。サイズ ポリシーには、垂直コンポーネントと水平コンポーネントの両方があります。
- ほとんどのウィジェットには、サイズのヒントもあります。このサイズのヒントは、ウィジェットの推奨サイズをシステムに伝えます
- QSizePolicy には、ウィジェットをさまざまな速度で拡大できるストレッチ ファクターがあります。
**私は 4 つのサイズ ポリシーしか知りません**
- 固定サイズ ポリシー - ウィジェットのサイズは固定されており、拡大することはできません。サイズヒントのままです。
- 最小サイズ ポリシー - サイズ ヒントはウィジェットの可能な最小サイズですが、必要に応じてさらに大きくすることもできます。
- 優先サイズ ポリシー - ウィジェットはサイズ ヒントよりも縮小または拡大できます。
- 拡張サイズ ポリシー - ウィジェットはサイズのヒントよりも縮小または拡大できます:)
優先と拡張の違いは何ですか? **答え:** 2 つのウィジェット (1 つは優先、もう 1 つはエキスパンド) を持つフォームを想像してください。次に、エキスパンド ポリシーを使用して、余分なスペースがウィジェットに与えられます。優先ポリシーを持つウィジェットは、サイズのヒントのままになります。
私はお勧めします (警告: 私は専門家ではありません :)) 「 QT を使用した C++ Gui プログラミング 第 2 版」を購入して一読することをお勧めします。私は現在それを読んでいて、とても理にかなっています。画像を見て、意味があるかどうかを確認してください。
サイズ ポリシーの説明

簡単な例
これは、水平方向と垂直方向のストレッチと同様に、水平方向と垂直方向のサイズ ポリシーが表示される 2 つのボタンを持つ単純なダイアログです。

これが最小サイズのプレビューです。

大きいサイズの別のプレビューはこちら

[編集: //サイズのヒントの例を追加]
SIZEHINT
を気にする必要がある理由 QT のレイアウト システムは常に sizeHint を尊重するため、すべてのウィジェットには重要な sizeHint があることがわかります。これは、ウィジェットのデフォルト サイズが希望どおりでない場合にのみ問題になります。この問題を回避する唯一の方法は、ウィジェットを拡張 (サブクラス化) し、そのsizeHint()
メンバー関数を再実装することです。例は 1000 語に相当します。スペースを節約するために、サンプル プロジェクトがある私のブログを参照してください。