QScrollArea 是一种常用的控件,可以为 QWidget 提供滚动条。它能够在 QWidget 内部嵌套一个可滚动的区域,并且只需要添加需要滚动的 QWidget 到 QScrollArea 中,即可自动添加滚动条。
下面是一个示例代码,展示如何在 QWidget 中添加滚动条:
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QScrollArea, QLabel
app = QApplication([])
window = QWidget()
layout = QVBoxLayout()
# 创建一个 QLabel,用于展示长文本
long_text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam congue tristique sapien, vel porttitor quam efficitur vel. Morbi aliquet velit sed erat vestibulum laoreet. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Donec ultricies quis lectus vel maximus. Vestibulum in velit nec turpis rhoncus pellentesque. Quisque ac enim quis purus bibendum interdum. Maecenas eget massa vel ipsum dapibus blandit ac a neque. Donec suscipit tellus eu fringilla sagittis. Aenean vitae sapien elit."
label = QLabel(long_text)
label.setWordWrap(True) # 设置自动换行
# 创建一个 QScrollArea,添加 QLabel 到其中
scroll_area = QScrollArea()
scroll_area.setWidget(label)
scroll_area.setWidgetResizable(True) # 设置滚动区域大小可调整
# 将 QScrollArea 添加到布局中
layout.addWidget(scroll_area)
window.setLayout(layout)
window.show()
app.exec_()
这段代码创建了一个 QWidget,并在其中添加了一个包含长文本的 QLabel。然后,创建了一个 QScrollArea,并将 QLabel 添加到其中。最后,将 QScrollArea 添加到 QWidget 的布局中。
当文本内容超出 QLabel 的大小时,将自动出现滚动条。可以通过设置 QScrollArea 的 setWidgetResizable 方法来设置滚动区域的大小是否可调整。
希望这个示例代码能帮助您添加滚动条。