Toon posts:

[Python] asyncore & tinker tegelijk

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik zit met het volgende probleem, ik ben bezig een IRC client te schrijven in python en maak daarbij gebruik van asyncore. Nu omdat een IRC client toch een GUI nodig heeft dacht ik Tinker te gebruiken maar daar loopt het fout.

Python:
1
2
asyncore.loop()
root.mainloop()
Als ik het zo doe komt de GUI nooit op en omgekeerd connect hij niet met IRC.


Iemand een idee hoe ik dit moet oplossen of mischien moet ik beter iets anders gebruiken.


http://www.sava.be/wp-files/main.py.txt
^^ Volledige source (niet zo groot)

  • Radiant
  • Registratie: Juli 2003
  • Niet online

Radiant

Certified MS Bob Administrator

Threads gebruiken? Zoek op PyThreads
Non-blocking sockets zijn ook een optie, hoewel ik hier geen ervaring mee heb in python.

  • djc
  • Registratie: December 2001
  • Laatst online: 08-09-2025

djc

Is er een reden dat je geen gebruik maakt van Twisted? Veel protocollen al geïmplementeerd, alles op asynchrone wijze.

Rustacean


Verwijderd

Manuzhai schreef op woensdag 13 juli 2005 @ 18:27:
Is er een reden dat je geen gebruik maakt van Twisted? Veel protocollen al geïmplementeerd, alles op asynchrone wijze.
Twisted is zeker goed, maar daar los je je probleem niet mee op; namelijk dat asyncore (of Twisted) asynchroon werkt, en Tkinter (spelling! O-)) synchroon.

Je mogelijkheden zijn dus:

• Voor een andere GUI toolkit kiezen. Dat is mogelijk, wxWindows is ook best goed, en integreert met Twisted, maar haalt het in de verste verte niet bij het gemak van Tkinter om "effe snel" een GUI in elkaar te draaien.

• Threads. Als je netwerkdeel en GUI deel in aparte threads draaien, hebben ze geen last van elkaar. Aan jou daarna wel de taak om netjes de synchronisatie tussen de threads te verzorgen.