Минимальный пример:
class MainWindow(QtGui.QMainWindow):
def __init__(self, parent = None):
QtGui.QMainWindow.__init__(self, parent)
winWidth = 683
winHeight = 784
screen = QtGui.QDesktopWidget().availableGeometry()
screenCenterX = (screen.width() - winWidth) / 2
screenCenterY = (screen.height() - winHeight) / 2
self.setGeometry(screenCenterX, screenCenterY, winWidth, winHeight)
layout = QtGui.QVBoxLayout()
layout.addWidget(FormA())
mainWidget = QtGui.QWidget()
mainWidget.setLayout(layout)
self.setCentralWidget(mainWidget)
FormA
- это QFrame
с VBoxLayout, который может расширяться до произвольного числа записей.
В приведенном выше коде, если записи в формах не помещаются в окне, само окно увеличивается. Я бы предпочел, чтобы окно стало прокручиваемым. Я также попробовал следующее ...
замена
mainWidget = QtGui.QWidget()
mainWidget.setLayout(layout)
self.setCentralWidget(mainWidget)
с
mainWidget = QtGui.QScrollArea()
mainWidget.setLayout(layout)
self.setCentralWidget(mainWidget)
приводит к сокращению форм и записей, если они не помещаются в окне.
Замена на
mainWidget = QtGui.QWidget()
mainWidget.setLayout(layout)
scrollWidget = QtGui.QScrollArea()
scrollWidget.setWidget(mainWidget)
self.setCentralWidget(scrollWidget)
приводит к тому, что mainwidget (составленный из форм) сокращается в верхнем левом углу окна, оставляя большие пустые области справа и снизу, и все еще не прокручивается
Я не могу установить ограничение на размер окна, потому что я хочу, чтобы оно было изменяемого размера.
Как мне сделать это окно прокручиваемым?