Danach kann man einsehen wer sich bereits angemeldet hat und sich so Jemanden aussuchen, den man anschreiben will (wie das bei normalen Chat-Programmen eben der Fall ist)
Mein Problem entsteht nun, wenn ein client eine Nachricht von einem anderen bekommt ohne, dass vorher schon ein Chatfenster zu dem Absender geöffnet wurde.
Denn dann versuche ich ein Fenster zu öffnen und die bekommene Nachricht darein zu schreiben. Leider ist nach dem öffnen des Fenster im Quelltext Schluss ( ab dem fenster.exec_() eben ). Meine Frage ist nun, ob es eine Möglichkeit gibt ohne Threads das ganze zu lösen oder ob ich darauf zurückgreifen muss.
hier mal etwas dazugehöriger Quelltext:
Code: Alles auswählen
#ist schon ein fenster zum absender geöffnet?
if sender in self.openWindows.keys():
#ins chatfenster schreiben
self.openWindows[sender].createLabel(text)
#falls nicht und in diesem zweig entsteht das problem
else:
#absender der nachricht als chatpartner erkennen
self.receiver = sender
#chatfenster öffnen
self.startChat() #hier ist natürlich ende durch das fenster.exec_() in startChat
#text ins chatfenster scheiben
self.openWindows[sender].createLabel(text)
#default-Receiver wiederherstellen
self.getReceiver()
Code: Alles auswählen
def startChat(self):
#wenn für den mpfänger schon ein chatfenster offen ist
if self.receiver in self.openWindows.keys():
#dem user melden dass schon ein fenster offen ist
msgBox = QtGui.QMessageBox(self)
msgBox.setText("Sie haben schon ein Chatfenster mit diesem Empfänger geöffnet")
msgBox.exec_()
else:
fenster = chatdialog(self)
#den receiver merken um nochmaliges fensteröffnen zu unterbinden
self.openWindows[self.receiver] = fenster
#fenster ausführen
fenster.exec_()