- 作者:
- 分类:知识&开发->语言->Python
- 阅读:2429
- 点赞:5
- 版权:CC BY-SA 4.0
- 创建:2019-10-13
- 更新:2020-06-13
`layout.removeWidget(widget1)` 无法移除组件的解决方法
版权声明:本文为 neucrack 的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接(持续更新):https://neucrack.com/p/44
原文链接(持续更新):https://neucrack.com/p/44
如图, 最外层是widget, 有一个layout,然后往这个layout里面添加3个widget,用完了在某个时候用layout.removeWidget(widget1)
把他们移除掉,然而事实却是仍然存在,其实这个widget1
的父类其实是最外层的widget
,所以移除也很简单,设置它们的父类为空即可
widget1.setParent(None)
如果需要移除一个layout下的所有widgets,可以遍历,如下:
for i in range(layoutObj.count()):
w = layoutObj.itemAt(i).widget()
w.setParent(None)
layout 文档: https://doc.qt.io/qt-5/layout.html