You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

QGroupBox内QPushButton、QLabel在窗口缩放时无法自动调整大小的问题

问题根因

你当前的QGroupBox自身未绑定顶层布局,内部承载QHBoxLayout、QVBoxLayout的容器widget是固定几何尺寸,不会跟随QGroupBox的缩放变化,所以才会出现GroupBox变大但内部控件尺寸不变的问题。

解决方案1:直接在Qt Designer中修改(推荐)
  • 打开ui文件,选中第一个groupBox控件,右键点击选择「布局」→「水平布局」,内部按钮会自动填充整个GroupBox空间
  • 选中第二个groupBox_2控件,右键点击选择「布局」→「垂直布局」,内部标签会自动填充整个GroupBox空间
  • 可选操作:选中centralwidget,右键设置为垂直布局,就无需在代码中手动编写主布局绑定逻辑
解决方案2:无需修改ui,直接在代码中补充布局绑定

修改你的初始化代码如下:

import sys

from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from resize_error import *

class MenuMain(QMainWindow, Ui_MainWindow):
    def __init__(self, parent=None):
        super(MenuMain, self).__init__(parent)
        self.setupUi(self)

        # 给两个GroupBox分别绑定内部布局
        self.groupBox.setLayout(self.horizontalLayout)
        self.groupBox_2.setLayout(self.verticalLayout)

        self.lytMain = QVBoxLayout()
        self.centralwidget.setLayout(self.lytMain)
        self.lytMain.addWidget(self.groupBox)
        self.lytMain.addWidget(self.groupBox_2)

if __name__ == "__main__":
    app = QApplication(sys.argv)
    mnuMain = MenuMain()
    mnuMain.show()
    sys.exit(app.exec_())
原理解释

你在Qt Designer中绘制的布局默认挂载在独立的临时QWidget容器上,该容器有固定的坐标和尺寸参数,不会跟随父控件缩放。将布局直接绑定到QGroupBox本身后,布局会自动适配QGroupBox的大小变化,内部控件也会同步拉伸填充可用空间。

内容的提问来源于stack exchange,提问作者ProgramMasher

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 01:48:02