Die Destroy-Funktion existiert..
Schau mal in der Interfacemodule in deine Close-Funktion.
Code:
def Close(self):
if self.wndChat:
self.wndChat.Destroy()
#[...]
if self.wndChat:
self.wndChat.Destroy()
In deinem ChatWindow-Objekt machst du bei Destroy() folgendes:
Code:
self.chatInputSet.Destroy()
self.chatInputSet = None
Führt dazu, dass dein self.chatInputSet beim ersten Aufruf auf "None" gesetzt wird. Dann ruft dein Interface aber nochmal Destroy auf (warum auch immer du das dort 2x reingepackt hast.) Das wiederrum führt dazu, dass du versucht None.Destroy() aufzurufen. Was natürlich nicht geht.
Lösch also einfach im Interfacemodule eine der beiden Aufrufe.
MfG