Рабочий код:
from PyQt4.QtGui import * from PyQt4.QtCore import * import sys, functools app = QApplication(sys.argv) top = Qt.AlignTop right = Qt.AlignRight left = Qt.AlignLeft center = Qt.AlignCenter bottom = Qt.AlignBottom class Window(QWidget): def __init__(self, parent=None): QWidget.__init__(self, parent) self.setMinimumSize(500,500) self.setMaximumSize(500,500) self.label = QLabel() self.label.setAlignment(top) self.hbox = QHBoxLayout() self.hbox2 = QHBoxLayout() self.button = QPushButton() self.button.setMaximumSize(50,50) self.button.clicked.connect(functools.partial(self.change, 'none')) self.txt = 'test '*100 self.test() def test(self): print 1 self.label.setText(self.txt) self.label.setWordWrap(True) self.hbox = QHBoxLayout() self.hbox.addWidget(self.label) self.hbox2.addWidget(self.button) self.scroll = QScrollArea(self) self.scroll.setGeometry(10,10,300,300) self.scroll.setVerticalScrollBarPolicy(Qt.ScrollBarAsNeeded) self.viewport = QWidget() self.viewport.setGeometry(10,10,280,590) self.viewport.setLayout(self.hbox) self.scroll.setWidget(self.viewport) self.setLayout(self.hbox2) def change(self,x): print 2 self.txt = '+ *100' self.test() window = Window() window.show() sys.exit(app.exec_())