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

PyQt5中Qt.AlignCenter失效且循环创建的QGroupBox标签仅显示一次文本

问题原因与修复方案

1. 动态生成的QGroupBox内QLabel仅显示一次

核心错误是QLabel坐标计算逻辑错误:QLabel的父控件是QGroupBox,坐标体系相对于QGroupBox左上角计算,而非整个滚动区域。你在设置坐标时叠加了全局偏移量90*mul,除了第一个QGroupBox内的控件,后续所有QLabel都会超出自身父控件的可视范围,因此无法显示。
修复方法:删除所有QLabel坐标中的偏移量叠加逻辑即可:

# 修正后的控件坐标设置
self.label.setGeometry(QRect(35, l_y, 371, 21))
self.label_2.setGeometry(QRect(35, l2n3_y, 371, 16))
self.label_3.setGeometry(QRect(360, l2n3_y, 91, 16))

2. QGroupBox垂直布局居中不生效

两个代码错误导致居中失效:

  • 嵌套了两层无意义的QScrollArea,布局层级混乱,对齐规则无法正常传递
  • 滚动区域setWidgetResizable参数设置错误,且垂直布局未开启全局居中对齐
    修复方法:
  1. 简化滚动区初始化逻辑,仅保留一层滚动区,同时给垂直布局设置全局水平居中:
# 修正后的滚动区初始化代码
self.scroll = QtWidgets.QScrollArea(self.centralwidget)
self.scroll.setGeometry(QtCore.QRect(70, 70, 531, 251))
self.scroll.setStyleSheet("background-image:")
self.scroll.setObjectName("subwin")
self.widget = QWidget()
# 给垂直布局设置全局水平居中对齐
self.vbox = QVBoxLayout(self.widget)
self.vbox.setAlignment(Qt.AlignHCenter)
  1. 修正滚动区配置参数,开启内容自适应:
# 修正后的滚动区配置
self.scroll.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn)
self.scroll.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
# 开启自适应让布局规则生效
self.scroll.setWidgetResizable(True)
self.scroll.setWidget(self.widget)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 02:57:00