我设置了一个这样的窗口:
vbox = QVBoxLayout()
groupBox = QGroupBox()
formLayout = QFormLayout()
groupBox.setLayout(formLayout)
vbox.addWidget(groupBox)
我还有两个按钮,用于从表单布局中添加行和删除行。
当我添加太多行以致它们无法容纳在定义的窗口中时,窗口将垂直扩展。删除行后,窗口将保持展开的大小。
相反,我希望区域滚动,以便新行仅在定义的窗口大小内可见,并且除非用户手动展开窗口,否则窗口不会展开。如何添加滚动功能并防止窗口扩展?
我已经想通了。您可以使用 QScrollArea((,如下所示:
vbox = QVBoxLayout()
groupBox = QGroupBox()
formLayout = QFormLayout()
groupBox.setLayout(formLayout)
scroll_area = QScrollArea()
scroll_area.setWidgetResizeable(True)
scroll_area.setWidget(groupBox)
vbox.addWidget(scroll_area)
这将创建一个窗口,该窗口不会更改其大小,而是在向 formLayout 添加更多行时自动添加滚动条。