La bonne façon de faire le ménage des widgets dans pyqt

Quelle est la "bonne" ou idiomatiques façon de nettoyage/supprimer des widgets lors de l'utilisation de PyQt4?

Considérons le code suivant:

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

Le code ci-dessus utilise setParent(), deleteLater(), et de définir l'objet de None. Sont tous de ces nécessaires?

Un autre scénario possible est que j'ai une boîte de dialogue avec un tas de widgets sur elle et que vous souhaitez supprimer ces widgets et d'en ajouter de nouvelles. Je ne veux pas de "fuite" à l'ancienne widgets, mais je ne suis pas sûr de ce que la bonne façon de faire quelque chose comme ce serait.

Il me semble que deleteLater() ne pourrait être nécessaire. C'est juste qu'il décrémenter le compteur de référence? Si oui, ne serait pas juste définition de la variable à Aucun faire la même chose?

InformationsquelleAutor durden2.0 | 2012-12-11