fix: step12 图像预览横向滚动条被挤出视口底部
根因: QScrollArea.setWidgetResizable(True) 强制 QLabel 填充视口, 与缩放后 QLabel 的 pixmap 固有尺寸冲突,滚动条布局异常。 修复: 1. setWidgetResizable(False) — QLabel 保持 pixmap 自然尺寸 2. QScrollArea SizePolicy → Expanding×Expanding (受父布局约束) 3. ScrollBarPolicy → AsNeeded (显式设置) 4. QLabel SizePolicy → Ignored (按内容自适应大小) 缩放行为: - 放大超出视口 → 自动出现滚动条 - 缩小/适应窗口 → QLabel 自动缩至 pixmap 尺寸, 无滚动条
This commit is contained in:
@ -978,12 +978,18 @@ class ImageViewerWidget(QWidget):
|
||||
layout.addLayout(toolbar)
|
||||
|
||||
self.scroll_area = QScrollArea()
|
||||
self.scroll_area.setWidgetResizable(True)
|
||||
# setWidgetResizable(False): QLabel 保持自身 pixmap 固有尺寸,
|
||||
# 放大时自然超出视口触发滚动条,而非被 QScrollArea 强制压缩
|
||||
self.scroll_area.setWidgetResizable(False)
|
||||
self.scroll_area.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
|
||||
self.scroll_area.setHorizontalScrollBarPolicy(Qt.ScrollBarAsNeeded)
|
||||
self.scroll_area.setVerticalScrollBarPolicy(Qt.ScrollBarAsNeeded)
|
||||
self.scroll_area.setStyleSheet("background-color: white;")
|
||||
|
||||
self.image_label = QLabel()
|
||||
self.image_label.setAlignment(Qt.AlignCenter)
|
||||
self.image_label.setStyleSheet("background-color: white;")
|
||||
self.image_label.setSizePolicy(QSizePolicy.Ignored, QSizePolicy.Ignored)
|
||||
self.image_label.setStyleSheet("background-color: white;")
|
||||
|
||||
self.scroll_area.setWidget(self.image_label)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user