Форум сайта python.su
В C проблема решается вызовом деструктора того, что выдает widget.layout() и дальше widget.setLayout(newlayout), а в Python как уничтожить старый layout?
Офлайн
import sip
sip.delete(widget.layout())
Офлайн
спасибо, про сип я и не подумал…
Офлайн
только с этим надо быть внимательнее, так как sip.delete не производит вызова деструктора и соответственно все детишки остаются как живые…
Офлайн
А чтобы прибить все дочернии такой код пользовать?
layout = self.graphWidget.layout()
while layout.count():
sip.delete(layout.takeAt(0))
sip.delete(layout)
Офлайн
Mixolap
...
temp = QWidget()
temp.setLayout(widget.layout())
temp.deleteLater()
widget.setLayout(new_layout)
...
Офлайн