Обновление виджета PyQt5
Идея проста, по нажатию на кнопку должен добавляться label. Но он не отображается, потому что, насколько я понял, окно уже отрисовалось. Как его можно обновить?
import os, sys
from PyQt5 import QtWidgets
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QPushButton, QHBoxLayout, QVBoxLayout, QScrollArea
class MyWin(QWidget):
def __init__(self):
super().__init__()
self.init_ui()
def init_ui(self):
self.vvbox = QVBoxLayout(self)
self.scrollarea = QScrollArea()
self.area = QWidget()
self.label_box = QVBoxLayout()
self.button = QPushButton('button')
self.button.clicked.connect(self.create_label)
self.area.setLayout(self.label_box)
self.scrollarea.setWidget(self.area)
self.vvbox.addWidget(self.scrollarea)
self.vvbox.addWidget(self.button)
def create_label(self):
label = QLabel('text')
self.label_box.addWidget(label)
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
w = MyWin()
w.show()
sys.exit(app.exec_())
Ответы (1 шт):
Автор решения: gil9red
→ Ссылка
Добавьте setWidgetResizable(True):
...
self.scrollarea.setWidget(self.area)
self.scrollarea.setWidgetResizable(True)
...