GUI mit wxPython
Kleines excerpt:
Code: Alles auswählen
class ClientConnection(asyncore.dispatcher):
def __init__(self, server, nick, ipv6=False):
asyncore.dispatcher.__init__(self)
if ipv6:
self.create_socket(socket.AF_INET6, socket.SOCK_STREAM)
else:
self.create_socket(socket.AF_INET, socket.SOCK_STREAM)
self.connect((server, 5000))
self.buffer = ''
self.nick = nick
self.lines = []
def handle_connect(self):
self.send('NICK %s\r\n' % (self.nick))
def handle_close(self):
self.close()
def handle_read(self):
f = self.recv(2**14)
self.lines.append(f)
def handle_write(self):
sent = self.send(self.buffer)
self.buffer = self.buffer[sent:]
Jetzt, wird das ganze aufgerufen:
Code: Alles auswählen
def manage_connection(self, event):
asyncore.poll()
for server in self.server:
data = server.lines
for line in data:
print line # Nur'n Beispiel, da mach ich schon mehr ;)
server.lines = []
for tab in self.tabs:
if tab.sendbuf:
for msg in tab.sendbuf:
self.tabs[tab][0].send(msg)
tab.sendbuf = []
self.tabs = {tab_object : (server, channel)} in dem alle "Tabs" gespeichert werden, "Tabs" sind Tabs von einem wx.aui.NoteBook()
tab.sendbuf = Gespeicherte Nachricht zum senden. Auf dem Tab ist eine TextCtrl, wenn man ENTER drückt, wird die Nachricht ausgelesen und in der Liste self.sendbuf gespeichert
//oh, was vergessen, manage_connection wird alle 0.3sekunden aufgerufen (wx.Timer())
Ich hoffe ihr könnt mir helfen
mfg