3

x固定サイズのウィジェットがあります。次に、最初に QScrollArea を取得し、次に QGridLayout を取得して、scrollAreaWidgetContent のレイアウトとして設定しました。x次に、グリッド レイアウトの (0,0)、(0,1)、(1,0)、(1,1)... のレイアウトにウィジェットを追加し始めました。次に、プログラムを実行すると、奇妙なことに、ウィンドウを垂直方向に縮小すると、ウィジェットが重なります。

重複したウィジェット

予想通り、ウィンドウのサイズを縦方向に大きくすると、それらが重ならなくなりました。

非重複

しかし、奇妙なことに、ウィンドウを水平方向に縮小すると、この問題は発生しません。例えば、

水平方向のサイズ変更

私の質問は、なぜこれが起こっているのか、さらに重要なことに、gridlayout を使用したいということを念頭に置いて、この問題を解決する方法を教えてください。

4

1 に答える 1

1

質問で言ったように、ウィジェットのサイズは固定されているため、スペースが残っていない場合、レイアウトはウィジェットを縮小しません。問題は、ウィンドウを縮小したときに何が起こりたいかということです。

  1. ウィジェットを縮小したい場合は、ウィジェットの sizePolicy を「Fixed」から「Preferred」に変更する必要があります。
  2. レイアウト内のウィジェットの数を減らしたい場合は、サイズ変更イベントにイベント ハンドラーを追加して、それらを削除できます。
  3. ウィンドウの縮小を禁止したい場合は、スクロールエリアの sizePolicy を固定または最小サイズに設定する必要があります
于 2014-07-10T15:40:04.223 に答える