Destruction apparement impropre d'une fenêtre Qdialog
Bonjour,
j'ai le message d'erreur suivant : RuntimeError: underlying C/C++ object has been deleted
Après quelques recherches dans les forums, je constate que ce message provient de contextes divers.
Voilà la situation qui m'y conduit.
- Un objet QObjet envoie un signal self . emit (SIGNAL('update')) pour indiquer qu'il a été modifié et qu'il convient de raffraichir l'interface (une QGraphicsScene visualisée dans un QGraphicsView d'une fenêtre Qdialog).
- la fenêtre se connecte à ce signal dans sa fonction __init__ par self . connect (self . station, SIGNAL ('update'), self . scene . update)
- cette fenêtre peut être ouverte en plusieurs exemplaires et tous se raffraichissent automatiquement (ça marche parfaitement)
Code:
1 2 3 4
|
newStationGUI = CGUIStationDialog (self . device . getOtherStation (self . station))
newStationGUI . show ()
newStationGUI . exec_ () |
- à sa fermeture j'ai mis (sans conviction, ni succès d'ailleurs) :
Code:
1 2 3 4
|
def close (self) :
self . station . disconnect (self, SIGNAL ('update'), self . scene . update)
super (CGUIStationDialog , self) . close () |
En cas de fermeture d'une des instances de la fenêtre, lors de l'émission du signal de rafraichissement apparait le message RuntimeError: underlying C/C++ object has been deleted
Vos lumières ?
Merci d'avance
Boula