wxPython mit Threads und Queues

Plattformunabhängige GUIs mit wxWidgets.
Antworten
supermoep
User
Beiträge: 4
Registriert: Samstag 2. Januar 2010, 15:29

Hallo ich versche zurzeit eine GUI für einen kleinen Server zu basteln der später für ein Spiel dienen soll.

Nun habe ich mir eine GUI gebastelt und habe die eigentliche Funktionalität in einem extra Thread laufen. Dies ist nötig da die GUI im Mainloop und der Server auch in einer Endlosschleife laufen muss.

Nun versuche ich die Kommunikation über eine Queue laufen zu lassen. Nur wird hierbei nur die erste Nachricht von der GUI geholt und danach nix mehr.

Mein Code:

Code: Alles auswählen

from GUI import MyFrame
import wx
import Queue
from PodSixNet.Server import Server
from server import MyServer
from time import sleep
from threading import Thread
    
queue = Queue.Queue()

class Server(Thread):
    def __init__(self,queue):
        Thread.__init__(self)
        self.queue = queue
    def run(self):
        server = MyServer(self.queue)
        
        while True:
            server.Pump()
            sleep(0.01)


if __name__=='__main__':
        
       
        
        Server = Server(queue)
        Server.start()
        
        app=wx.PySimpleApp()
        frame = MyFrame()
        data=queue.get()
      
        print data

        app.MainLoop()

Ich dachte die GUI läuft auch in einem Loop. Warum hollt er aber nach dem ersten Durchlauf keine Nachricht mehr aus der Queue?

Danke für Tipps!

Grüße
Antworten