У меня есть форма, которая растет в высоту, поскольку пользователь предоставляет информацию.В настоящее время это происходит путем динамического добавления таблиц и других виджетов в сетку, когда пользователь вводит информацию.Упрощенная начальная точка выглядит примерно так:
class UI(QtGui.QDialog):
def __init__(self, parent=None):
QtGui.QDialog.__init__(self, parent)
self.setObjectName(_fromUtf8("Form"))
self.resize(800, 600)
self.gridLayout = QtGui.QGridLayout()
self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
self.setLayout(self.gridLayout)
В конце концов, в макет сетки может быть добавлено достаточное количество виджетов, чтобы содержимое диалога превышало его высоту.Учитывая это, я хотел бы реализовать макет сетки в области прокрутки, но я не могу понять, что все правильно:
class UI(QtGui.QDialog):
def __init__(self, parent=None):
QtGui.QDialog.__init__(self, parent)
def setupUi(self):
self.setObjectName(_fromUtf8("Form"))
screen = QtGui.QDesktopWidget().screenGeometry()
self.resize(800, screen.height())
self.gridLayout = QtGui.QGridLayout()
self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
w = QtGui.QWidget()
# w.setLayout(self.gridLayout)
s = QtGui.QScrollArea()
s.setMinimumHeight(screen.height())
s.setWidget(w)
s.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOn)
s.setLayout(self.gridLayout)
l = QtGui.QVBoxLayout()
l.setContentsMargins(0, 0, 0, 0)
l.setSpacing(0)
l.addWidget(s)
# self.setLayout(self.gridLayout)
self.setLayout(l)
Где я иду не так?У меня есть область прокрутки и полоса прокрутки, но содержимое, которое добавляется, кажется, не находится внутри области прокрутки?Любое руководство с благодарностью.