2

レイアウトはすべて Qt で適切に設計されていましたが、親ウィンドウをクリックしてグリッド レイアウトに設定するとすぐに、すべてがおかしくなりました。私は見つけることができるすべてのチュートリアルと Qt デザイナーのマニュアルを読みましたが、なぜこれが起こっているのかわかりません。問題を示すスクリーンショットを添付しました。 ここに画像の説明を入力

ご覧のとおり、左側の垂直レイアウトは、含まれる子よりも幅が広いことを主張しています。ラベルとツリービューの両方が sizePolicy maximum に設定され、最大幅は 260px に設定されています。子自体は正しいサイズのままですが、それらを含む垂直レイアウトはそうではありません。

中央の垂直レイアウトはエキスパンドに設定されており、右端のものは左のものと同じように設定されていますが、その 1 つだけが機能しているように見えます。最初の垂直レイアウトを子の幅に合わせるにはどうすればよいですか?

また、2 番目の質問をこっそり入れる場合、右下のタブ ウィジェット内に QTextEdit がありますが、完全なタブ ビューのスペースを占有することはありません。スクリーンショットではわかりませんが、タブビューを引き上げると、その中のテキスト編集が伸びません。タブのサイズに合わせるにはどうすればよいですか? すでに sizePolicy 拡張に設定されていますが、それは役に立たないようです。

4

1 に答える 1

3

問題は、レイアウトの「ストレッチ」を試す必要がある可能性が最も高いです。Stretch は、相互に関連するレイアウト セルのサイズを設定します。デフォルトは 0 で、ストレッチが行われないことを意味します。

あなたの場合、最初の列 (列 0) のストレッチを 0 に設定し、2 番目と 3 番目の列のストレッチを 1 に設定したいと考えています。これは、最初の列が常に可能な限り小さくなることを意味します。 2 番目と 3 番目の列は、同じ幅になるように試行されます。

ストレッチはプログラムで非常に簡単に設定できます。たとえば、最初の列をストレッチ 0 に設定するには、次のようにします。

layout->setColumnStretch(0, 0);

Qt Designer では、通常のプロパティとして列と行のストレッチにアクセスできます。

于 2012-04-28T14:59:00.000 に答える