アプリケーションが起動されているが初期のウィジェットが作成されているときなど、アプリケーションを起動すると、レイアウトに2つのウィジェットを持つQSplitter
を追加します。ウィジェットは利用可能なスペースの60/70%を多かれ少なかれ占有しますが、最初のウィジェットは残りのスペースを取る(スプリッターのサイズ自体を考慮に入れて)。Qt:QSplitter、redo sizes
ので、初めに、自身が示されているウィンドウの前に、私はそのように多かれ少なかれこれら二つのウィジェットを再調整してみてください:
splitter->setOrientation(Qt::Vertical);
auto sizes = splitter->sizes();
int& first_w = sizes.front(); // == 0
int& second_w = sizes.last(); // == 0
int diff = form_w * 2.3 - tbl_w; (30% * 2.3 = ~70%)
second_w += diff;
first_w -= diff;
splitter->setSizes(sizes);
しかし、first_w
とsecond_w
が0
と0
、私はドンが含ま」サイズがまだ計算されていないか、またはウィジェットがまだ表示されていない(ウィンドウが表示されていない)ため、不可視ウィジェットのサイズが0
であるかどうかを知ることはできません。
これらのウィジェットの「将来の」サイズを取得するにはどうすればよいですか? splitter
はQVBoxLayout
の中にあり、所有者ウィジェットの利用可能なスペースは、ウィンドウの垂直スペースの多かれ少なかれです(QVBoxLayout
を所有するウィジェットの上にはQTabBar
しかなく、ウィンドウ内に少しのパディングがあります)。
いいえ、動作しません(私はテストしています)。その値は、私が思うにはピクセル単位でサイズを設定し、その中には空き領域がたくさんあるので、値は完全に 'sizeHint'sに置き換えられます。問題のウィジェットは、フォーム内部に垂直方向のスペースが大きすぎる 'QTextEdit'です。 –