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