sku*_*uda 41
如果您的小部件没有依赖它的子小部件,我认为您可以使用:
layout.removeWidget(self.widget_name)
self.widget_name.deleteLater()
self.widget_name = None
Run Code Online (Sandbox Code Playgroud)
在我的测试中,当它是一个有孩子的小部件时,你必须:
import sip
layout.removeWidget(self.widget_name)
sip.delete(self.widget_name)
self.widget_name = None
Run Code Online (Sandbox Code Playgroud)
如果您在类或全局级别没有窗口小部件的变量名称,您仍然可以使用layout.takeAt(index)从布局中删除并从QLayoutItem获取窗口小部件指针,此函数将返回QLayoutItem.widget()方法,在这种情况下,您不需要将变量名称赋值为None,因为它不会在函数外部引用.
尝试两种方法,看看哪些方法适合你(重复一段时间后不要泄漏内存).