472,995 Members | 1,838 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 472,995 software developers and data experts.

tkinter, sockets and threads together

hello,

i read that it is bad to use threads with tkinter. so my question is
how does one create a gui program with sockets? at one point you have
to call mainloop() which does not return. then you are not free to do
stuff with the sockets.

what's up with that?

thanks so much for your time!
julia
Jul 18 '05 #1
4 7444
ju************@hotmail.com (Julia Goolia) writes:
i read that it is bad to use threads with tkinter. so my question is
how does one create a gui program with sockets? at one point you have
to call mainloop() which does not return. then you are not free to do
stuff with the sockets.

what's up with that?


On Unix, you can use Tk file handlers for sockets, i.e. have Tcl
select(2) not only on the connection to the X11 server (which is a
socket itself), but also select on your sockets. This is readily
supported in _tkinter.

On Windows, you have no choice but to use threads. If the socket
processing threads have no relationship to the Tk thread, everything
is fine. However, in many cases, interaction of some kind is
needed. In this case, it is ok to call Tk methods from other threads,
as long as they translate to "fast" commands, i.e. commands that only
modify state, but don't block - you should not run the mainloop in
multiple threads.

Regards,
Martin

Jul 18 '05 #2
In article <79**************************@posting.google.com >,
ju************@hotmail.com (Julia Goolia) wrote:
hello,

i read that it is bad to use threads with tkinter. so my question is
how does one create a gui program with sockets? at one point you have
to call mainloop() which does not return. then you are not free to do
stuff with the sockets.

what's up with that?


For reading from a socket you can use file events. See Tkinter Summary
at my site <http://www.astro.washington.edu/owen/> for the basics.

To avoid blocking while writing (i.e.queue up the output data and write
it as the network permits), I ended up using threads. There are probably
other options.

The package "RO Util", available at th web site mentioned above includes
a simple class RO.Comm.TkSocket that handles input and output nicely,
while hiding the details of file events and the writing thread.

You could also use the Twisted Framework. It is reportedly well done and
integrate nicely with Tkinter and other frameworks. I can't speak from
personal experience as I've not yet tried it.

-- Russell
Jul 18 '05 #3
> i read that it is bad to use threads with tkinter. so my question is
how does one create a gui program with sockets? at one point you have
to call mainloop() which does not return. then you are not free to do
stuff with the sockets.


Take a look at
http://www.python.org/doc/faq/gui.ht...ndled-while-wa
iting-for-i-o
RT

Jul 18 '05 #4
"Julia Goolia" <ju************@hotmail.com> wrote in message
news:79**************************@posting.google.c om...
hello,

i read that it is bad to use threads with tkinter. so my question is
how does one create a gui program with sockets? at one point you have
to call mainloop() which does not return. then you are not free to do
stuff with the sockets.

what's up with that?

thanks so much for your time!


Well, one page worth reading would be Jacob HallÚn's

http://aspn.activestate.com/ASPN/Coo...n/Recipe/82965

recipe, which IIRC is pretty general.

regards
--
Steve Holden http://www.holdenweb.com/
Python Web Programming http://pydish.holdenweb.com/pwp/


Jul 18 '05 #5

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

2
by: Tero Saarni | last post by:
Hi, I have several threads communicating with each other using events stored in Queues. Threads block on Queue.get() until somebody publishes an event in thread's event queue. I need to add...
5
by: george.trojan | last post by:
My application consists of Tkinter GUI that has to communicate with a remote server. The communication is bi-directional: the GUI responds to remote requests and user actions uch as pressing a...
1
by: corrado | last post by:
Hello I have an application running several thread to display some financial data; basically I have a thread displaying HTML tables by means of Tkhtml, another implementing a scrolling ticker...
0
by: Rod Stephenson | last post by:
I am developing an engineering application for modelling multiphase flows in large pipe networks, and have just discovered the joy of pyopengl for 3D visualization. However the incantation I'm...
12
by: Tonino | last post by:
I have been looking through the previous posts - but with my lack of knowledge on the whole tkinter subject - I have no clue what to look for ... SO - can anyone please help with this ...? I...
2
by: Stressed Out Developer | last post by:
We have an application that has a 200 count loop that does the following: ' Each time thru the loop we pass the next IP Address is a range (aka 192.168.4.50 thru 192.168.4.254) Try If...
14
by: Hendrik van Rooyen | last post by:
Hi, I get the following: hvr@LINUXBOXMicrocorp:~/Controller/libpython display.py UpdateStringProc should not be invoked for type font Aborted and I am back at the bash prompt - this is...
2
by: Kevin Walzer | last post by:
I'm trying to decide whether I need threads in my Tkinter application or not. My app is a front end to a command-line tool; it feeds commands to the command-line program, then reads its output and...
2
by: Kevin Walzer | last post by:
I'm porting a Tkinter application to wxPython and had a question about wxPython's event loop. The Tkinter app provides a GUI to a command-line tool. It gathers user input, and opens an...
0
by: Aliciasmith | last post by:
In an age dominated by smartphones, having a mobile app for your business is no longer an option; it's a necessity. Whether you're a startup or an established enterprise, finding the right mobile app...
0
tracyyun
by: tracyyun | last post by:
Hello everyone, I have a question and would like some advice on network connectivity. I have one computer connected to my router via WiFi, but I have two other computers that I want to be able to...
2
by: giovanniandrean | last post by:
The energy model is structured as follows and uses excel sheets to give input data: 1-Utility.py contains all the functions needed to calculate the variables and other minor things (mentions...
4
NeoPa
by: NeoPa | last post by:
Hello everyone. I find myself stuck trying to find the VBA way to get Access to create a PDF of the currently-selected (and open) object (Form or Report). I know it can be done by selecting :...
3
NeoPa
by: NeoPa | last post by:
Introduction For this article I'll be using a very simple database which has Form (clsForm) & Report (clsReport) classes that simply handle making the calling Form invisible until the Form, or all...
3
by: nia12 | last post by:
Hi there, I am very new to Access so apologies if any of this is obvious/not clear. I am creating a data collection tool for health care employees to complete. It consists of a number of...
0
NeoPa
by: NeoPa | last post by:
Introduction For this article I'll be focusing on the Report (clsReport) class. This simply handles making the calling Form invisible until all of the Reports opened by it have been closed, when it...
0
isladogs
by: isladogs | last post by:
The next online meeting of the Access Europe User Group will be on Wednesday 6 Dec 2023 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM). In this month's session, Mike...
3
SueHopson
by: SueHopson | last post by:
Hi All, I'm trying to create a single code (run off a button that calls the Private Sub) for our parts list report that will allow the user to filter by either/both PartVendor and PartType. On...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.