Ich habe mir mit PyQt einen Dialog gebastelt, er eine einfache TextBox enthält.
Das ganze funktioniert auch wunderbar. Nun will ich diesen Dialog als Server laufen lassen - also brauche ich eine Endlosschleife (soweit ich bis jetzt weiß).
Nur das Problem: Solange der Dialog auf ist, bleibt der Server in einer Schleife vom Dialog und springt erst zu meiner Endlosschleife wenn der Dialog geschlossen wird. Wenn ich die Endlosschleife vor dem initialisieren des Dialogs packe, lädt der Dialog nicht - logisch.
Kann man dies irgendwie lösen?
Hier ist mein bisheriger Code:
Code: Alles auswählen
import sys, socket, thread
from PyQt4 import QtCore, QtGui
from Server import Ui_Dialog as Dialog_Server
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(("", 1234))
s.listen(1)
print "Listener geoeffnet auf Port 1234!"
while True:
nachricht, adresse = s.accept()
while True:
text = nachricht.recv(1024)
if text != "":
print "%s sagt: %s" % (adresse[0], text)
class Fenster(QtGui.QDialog, Dialog_Server):
def __init__(self):
QtGui.QDialog.__init__(self)
self.setupUi(self)
self.connect(self.Schliessen, QtCore.SIGNAL("clicked()"), self.Schliessen_Click)
def Schliessen_Click(self):
try:
s.close()
close()
except:
print "Konnte Server nicht beenden!"
App = QtGui.QApplication(sys.argv)
Dialog = Fenster()
Dialog.show()
sys.exit(App.exec_())
while True:
nachricht, adresse = s.accept()
while True:
text = nachricht.recv(1024)
if text != "":
print "%s sagt: %s" % (adresse[0], text)
Danke,
~ Chris