【问题标题】:Qt5: How do I make the window scroll instead of expand as rows are added to QFormLayout? (Python 3)Qt5:当行添加到 QFormLayout 时,如何使窗口滚动而不是展开? (Python 3)
【发布时间】:2017-11-13 17:01:17
【问题描述】:

我有一个像这样设置的窗口:

vbox = QVBoxLayout()
groupBox = QGroupBox()
formLayout = QFormLayout()
groupBox.setLayout(formLayout)
vbox.addWidget(groupBox)

我还有两个按钮,用于在 formLayout 中添加行和删除行。

当我添加太多行以至于它们无法放入定义的窗口时,窗口会垂直扩展。删除行后,窗口仍保持展开后的大小。

我希望让区域滚动,以便新行仅在定义的窗口大小内可见,并且除非用户手动展开,否则窗口不会展开。如何为此添加滚动功能并防止窗口扩大?

【问题讨论】:

    标签: python python-3.x scroll qt5 pyqt5


    【解决方案1】:

    我想通了。可以使用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 添加更多行时自动添加滚动条。

    【讨论】:

      猜你喜欢
      • 2021-09-09
      • 1970-01-01
      • 2014-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多