1

ウィンドウ サイズを大きくしたときに一部の要素がフォーム レイアウトの下部に留まり、他の要素が上部に留まるようなフォームを設計しようとしています。上部要素と下部要素の間に垂直スペーサーを使用するとほとんど機能しますが、垂直スペーサーはその SizeHint の高さの値までしか伸びません (以下のスクリーンショットを参照)。

SizeHint を大きくするだけで、ウィンドウ全体の推奨サイズが非常に大きくなるという望ましくない副作用が生じるため、[サイズの調整 (Ctrl+J)] コマンドを使用すると、ウィンドウが許容できないほど大きくなります。

フォーム レイアウトの代わりに垂直レイアウトを使用すると、ストレッチャーは期待どおりに動作し、無制限に増加し、「サイズの調整」を使用すると SizeHint を尊重しますが、もちろん、フォーム レイアウトの動作は失われます (テキストラベル)。

フォーム レイアウトで垂直スペーサーが SizeHint を超えて伸びるようにするにはどうすればよいですか?

最小サイズ

サイズアップ

4

1 に答える 1

1

1 つだけでなく、複数のレイアウトを使用します。

  1. ウィンドウの垂直レイアウトを設定します。
  2. 水平レイアウトを追加し、QLabel と QLineEdit で埋めます。垂直スペーサーを追加します。
  3. 別の水平レイアウトを追加し、QLabel と QLineEdit で埋めます。
  4. 水平レイアウトを追加し、垂直スペーサーと 2 つの QPushButton で埋めます。

私があなたを正しく理解していれば、あなたはあなたが望むものを手に入れるはずです:)

もう 1 つの方法は、QGridLayoutを使用することです。

  1. QLabels を 0,0 および 1,0 に設定します
  2. QPushButtons を 2,1 および 2,2 に設定します
  3. QLineEdits を 0,1 および 1,1 に設定します
  4. QLineEdits をドラッグして、列 1 から列 2 にまたがるようにします。
  5. 行 0 と 1 の間の垂直スペーサー。
于 2013-01-21T17:29:27.983 に答える