Я провел прошлую ночь, пытаясь заставить эту QScrollArea работать без какой-либо удачи. То, что я пытаюсь сделать, это добавить верхний горизонтальный макет меню и прокручиваемый вертикальный макет контента под меню. Полоса прокрутки не видна, и компоновка содержимого вылетает с места, как только я добавляю в нее новые элементы (нажатием одной из кнопок меню).
Пожалуйста, помогите мне. :)
С уважением,
Ларс Эрик
import sys
from PyQt4 import QtCore, QtGui, Qt
class MainWindow( QtGui.QMainWindow ):
def __init__( self ):
QtGui.QMainWindow.__init__( self )
self.centralWidget = QtGui.QWidget()
self.setCentralWidget( self.centralWidget )
#Main Layout
layout = QtGui.QVBoxLayout()
layout.setSpacing( 0 )
self.centralWidget.setLayout( layout )
#Top Menu Layout
hLayout = QtGui.QHBoxLayout()
layout.addLayout( hLayout )
i = 0
while i < 5:
addContent = QtGui.QPushButton( 'Add Content' )
hLayout.addWidget( addContent )
self.connect(addContent, QtCore.SIGNAL('clicked()'), self.addContent)
i += 1
#Content Layout
self.lowerWidget = QtGui.QWidget()
#self.lowerWidget.setMaximumSize( Qt.QSize(150, 250) )
self.scrollArea = QtGui.QScrollArea()
self.scrollArea.setWidget( self.lowerWidget )
layout.addWidget( self.lowerWidget )
self.vLayout = QtGui.QVBoxLayout()
self.lowerWidget.setLayout( self.vLayout )
i = 0
while i < 25:
label = QtGui.QLabel( 'Content' )
self.vLayout.addWidget( label )
i += 1
def addContent(self):
label = QtGui.QLabel( 'Content' )
self.vLayout.addWidget( label )
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
mainWin = MainWindow()
mainWin.show()
sys.exit(app.exec_())