你应该看一下这家酒店QWidget::sizePolicy.它控制布局sizeHint()在更新几何图形时如何尊重其子项.
所以你需要做的是:通过将三个子窗口小部件的水平sizePolts设置为:使布局忽略子窗口小部件的水平sizeHints QSizePolicy::Ignored:
QLabel *label = ...;
...
label->setSizePolicy(QSizePolicy::Ignored, label->sizePolicy().verticalPolicy());
Run Code Online (Sandbox Code Playgroud)
(第二个参数将确保此语句不会更改垂直策略.当然,您应该设置每个子窗口小部件的大小策略,此示例代码仅用于标签.)
请注意,布局的内容必须是小部件; 我认为嵌套布局不能分配大小策略(但我可能错了).至少使用QtDesigner,没有办法将大小策略应用于布局本身(如果它不是小部件的布局).请参阅评论了解详情
在QtDesigner中,您可以设置子窗口小部件的sizePolicy,如下所示:
之前:

收缩:

选择布局中的项目:

将水平大小策略设置为"忽略":

结果:
