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 に設定するだけで同じことはできませんか?