要在自定义部件中使用 QScrollArea
,可以先创建一个 QWidget
,然后在这个 QWidget
上添加一个 QScrollArea
,最后把你想滑动的部件添加到 QScrollArea
中。下面是设置在自定义侧的步骤。
步骤
- 导入 pyqt5 库,并创建一个带有滚动条的 QWidget
from PyQt5.QtWidgets import QWidget, QVBoxLayout, QScrollArea
class CustomScroll(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
# 创建一个垂直布局
vbox = QVBoxLayout(self)
vbox.setContentsMargins(0, 0, 0, 0)
# 创建一个 QScrollArea 并设置水平和垂直滚动条
scroll = QScrollArea(self)
scroll.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn)
scroll.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
# 添加你想要滑动的部件到 QScrollArea 中
widget = QWidget(self)
vbox.addWidget(scroll)
scroll.setWidget(widget)
scroll.setWidgetResizable(True)
- 在上一步中,我们创建了一个新的 QWidget,添加了一个 QVBoxLayout 和一个 QScrollArea。但我们并没有把要滑动的部件添加到 QScrollArea 中。接下来,我们要把我们的部件添加到 QScrollArea 中。
from PyQt5.QtWidgets import QWidget, QVBoxLayout, QScrollArea, QLabel
class CustomScroll(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
# 创建一个垂直布局
vbox = QVBoxLayout(self)
vbox.setContentsMargins(0, 0, 0, 0)
# 创建一个 QScrollArea 并设置水平和垂直滚动条
scroll = QScrollArea(self)
scroll.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn)
scroll.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
# 添加你想要滑动的部件到 QScrollArea 中
widget = QWidget(self)
scroll.setWidget(widget)
scroll.setWidgetResizable(True)
vbox.addWidget(scroll)
# 创建一个 QLabel,用于内容演示
label = QLabel('Hello World!', widget)
vbox.addWidget(label)
这里我们创建了一个 QLabel 并添加到了我们的 widget 中。现在,在 CustomScroll
的任何位置添加一个 CustomScroll
实例就可以让这个部件通过滚动条滚动了。例如,你可以在主窗口的一个布局中添加一个 CustomScroll
的实例,以实现在主窗口的指定位置内启用垂直滚动条。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:pyqt5 QScrollArea设置在自定义侧(任何位置) - Python技术站