このアプリケーションでは、HBoxLayout のリストが生成されて VBoxLayout に配置され、動的に入力されるコマンドのリストが形成されます。各サブリストの上には、その下のコントロールを非表示にする機能を持つボタンがあります。問題: サブリストが非表示の場合、最も広い VBoxLayout を含むウィジェットのサイズが変化しません! 次に、VBoxLayout が引き伸ばされて補正されます。コンテナー ウィジェットに含まれるアイテムが少なくなったら、コンテナー ウィジェットを縮小したい! 次のようになります。
問題は、プッシュ ボタンの 1 つの下にリストを非表示にすると、含まれているウィジェットが縮小されないことです。VBoxLayout は、目に見えるアイテムが少ない場合にのみ展開されます:(
これは、私の小さな GUI がどのように見えるかを示した図です。
より広範なレイアウト設定のコードを次に示します。
scrollArea = new QScrollArea(this);
scrollAreaLayoutWidget = new QWidget(scrollArea);
scrollAreaLayout = new QVBoxLayout(scrollAreaLayoutWidget);
//scrollAreaLayout is filled with all the stuff you see inside the scroll area...
scrollArea->setWidget(scrollAreaLayoutWidget);
コンテナー ウィジェット (青いボックス) の QSizePolicy をさまざまな方法で変更しようとしました。サイズ変更の質問が何十も見つかりましたが、どういうわけか答えが見つかりませんでした。私が見逃している魔法の自動サイズ変更設定はありますか? これが非常に曖昧または不完全である場合はお知らせください。どんなコメントでも大歓迎です!