使用 PyQt4 时清理/删除小部件的“正确”或惯用方式是什么?
考虑以下代码:
choices = ['a', 'b', 'c']
checkboxes = []
layout = QtGui.QVBoxLayout()
dialog = MyDialog()
for c in choices:
checkboxes.append(QtGui.QCheckBox(c)
layout.addWidget(chkbox)
dialog.setLayout(layout)
for c in checkboxes:
c.setParent(None)
c.deleteLater()
c = None
上面的代码使用setParent()
, deleteLater()
, 并将对象设置为None
. 所有这些都是必要的吗?
另一种可能的情况是我有一个带有一堆小部件的对话框,并且想要删除这些小部件并添加新的小部件。我不想“泄露”旧的小部件,但我不确定做这样的事情的正确方法是什么。
在我看来,这deleteLater()
可能永远不需要。它只是减少引用计数吗?如果是这样,只是将变量设置为 None 不会做同样的事情吗?