Hi ich will einen Thread starten der in einem PyQt Mainwindow empfangene nachrichten ausgibt und das am besten über einen thread
klappt an sich alles bis auf das ich das ganze ins fenster bekomm.
Sobald der befehl dazu kommt stürzt das programm immer ab
Ohne thread geht es!
SRY ich weiß geht besser zu schreiben aber hab den code so oft verändert ohne ergebnisse das es jetz halt einfach nur funktionieren soll
Schonmal danke und freu mich über jeden rat
klappt an sich alles bis auf das ich das ganze ins fenster bekomm.
Sobald der befehl dazu kommt stürzt das programm immer ab

Ohne thread geht es!
Code:
import socket
import sys
from PyQt4 import QtCore, QtGui
from Ui_client import Ui_MainWindow as Dlg
import thread
import time
class CDlg(QtGui.QMainWindow, Dlg):
def __init__(self, s):
QtGui.QMainWindow.__init__(self)
self.setupUi(self)
self.show()
self.s = s
self.connect(self.Connect, QtCore.SIGNAL("clicked()"), self.onConnect)
self.connect(self.Sender, QtCore.SIGNAL("clicked()"), self.onSend)
def onSend(self):
self.s.send("Hillkorn: %s\n" % self.Inputbox.toPlainText())
self.Inputbox.clear()
def onConnect(self):
self.s.connect(("127.0.0.1", 51000))
global ct
ct = True
def onEmpf(self, nachricht):
# nachricht = self.s.recv(1024)
# nachricht = self.Outputbox.toPlainText() + nachricht
self.Outputbox.setPlainText(nachricht)
def empfangen():
global ct
global nachricht
global s
global window
print "out if"
while True:
if ct == True:
print "in if"
nachricht += s.recv(1024)
window.onEmpf(nachricht)
time.sleep(2)
#ip = raw_input("IP-Adresse: ")
#name = raw_input("Ihr name? ")
#s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
#s.connect((ip, 51000))
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
ct = False
nachricht = ""
app = QtGui.QApplication(sys.argv)
window = CDlg(s)
thread.start_new_thread(empfangen, ())
sys.exit(app.exec_())
Schonmal danke und freu mich über jeden rat