Ich versuche es mit
Code: Alles auswählen
self.destroyed.connect(self.onExit)
...
def onExit(self):
self.socket.write("Hallo Welt")
Code: Alles auswählen
self.destroyed.connect(self.onExit)
...
def onExit(self):
self.socket.write("Hallo Welt")
Code: Alles auswählen
def closeEvent(self, event):
tu_was_du_tun_willst()
# event.ignore()
#falls Du das Event ignorieren wölltest
Code: Alles auswählen
def closeEvent(self, event):
....
Code: Alles auswählen
class chatdialog(QtGui.QDialog, Ui_chatdialog):
#konstruktor des chatfensters
def __init__(self, parent, chatPartner):
QtGui.QDialog.__init__(self)
self.setupUi(self)
#dem Dialog einen Chatpartner zuordnen
self.chatPartner = chatPartner
#mainwindow zum parent machen
self.parent = parent
#liste mit allen sichtbaren labels
self.labels = []
#liste mit ALLEN labels
self.history = []
#momentane y-position des lineEdit
self.currentY = 0
self.lineEdit.returnPressed.connect(partial(parent.sendMsg, self))
self.setWindowTitle(self.chatPartner)
self.show()
#ein Label erstellen, es konfigurieren, und an die richtige Stelle setzen
def createLabel(self, text):
...
#selbst getippten text ins fenster schreiben und den text zurueckgeben
def onReturnPressed(self):
...
#wenn das chatfenster beendet wird
def closeEvent(self, event):
#chatpartner aus openWindows löschen
del self.parent.openWindows[self.chatPartner]
event.accept()
##----------------------------------------Ende Definition des chat-Fensters-------------------------------------------------------------
#****************************************************************************************************************************************
#****************************************************************************************************************************************
#****************************************************************************************************************************************
#****************************************************************************************************************************************
#-----------------------------------------Anfang Definition des Hauptfensters------------------------------------------------------------
class Dialog(QtGui.QMainWindow, Ui_MainWindow):
#konstruktor des Dialog-Klasse
def __init__(self):
QtGui.QMainWindow.__init__(self)
self.setupUi(self)
self.socket = QtNetwork.QTcpSocket(self)
self.socket.connectToHost("192.168.2.104", 6000)
#liste die den empfangenen text enthaelt
self.data = []
#ein dictionary mit den namen des chatpartners als key und das fenster als value
self.openWindows = {}
#es existiert noch kein chatdialog
fenster = None
#empfaenger durch combobox bestimmen; default ist ""
self.receiver = ""
#ankommende Daten werden in getData verarbeitet
self.socket.readyRead.connect(self.getData)
#klick auf den button öffnet ein chatfenster
self.pushButton.clicked.connect(self.startChat)
#wird die combobox verändert muss der receiver bestimmt werden
self.comboBox.currentIndexChanged.connect(self.getReceiver)
#comboBox an die liste der user (data) anpassen
def fillBox(self, userlist):
...
#die usernamen extrahieren
def determineNames(self, data):
....
#ankommende Daten verabeiten
def getData(self):
...
#chatfenster oeffnen
def startChat(self):
fenster = chatdialog(self, self.receiver)
#den receiver merken um nochmaliges fensteröffnen zu unterbinden
self.openWindows[self.receiver] = fenster
chatPartner = fenster.chatPartner
#fenster ausführen
fenster.open()
#receiver aus comboBox lesen
def getReceiver(self):
...
#bei druecken von enter im chatfenster wird die nachricht verschickt
def sendMsg(self, fenster):
#nachricht zum verschicken bekommen und createLabel aufrufen
msg_text = fenster.onReturnPressed()
if msg_text == "EXIT":
fenster.close()
...
def handleDisconnect(self):
...
def closeEvent(self, event):
self.handleDisconnect()
event.accept()
Code: Alles auswählen
class chatdialog(QtGui.QDialog, Ui_chatdialog):
#konstruktor des chatfensters
def __init__(self, parent, chatPartner):
QtGui.QDialog.__init__(self)
self.setupUi(self)
Code: Alles auswählen
class chatdialog(QtGui.QDialog, Ui_chatdialog):
def __init__(self, parent=None):
QtGui.QDialog.__init__(self, parent)
Code: Alles auswählen
self