Second try: non-blocking subprocess pipe and Tkinter in 2.7

Peter Otten __peter__ at web.de
Fri Dec 21 11:33:29 EST 2012


Kevin Walzer wrote:

> Yesterday I posted a question about keeping a Tkinter GUI during a
> long-running process, i.e. reading data from a pipe via the subprocess
> module. I think that question did not quite get at the heart of the
> issue because it assumed that Python, like Tcl which underlies Tkinter,
> supports non-blocking, asynchronous reading out of the box. Apparently
> it does not.
> 
> So, my question is hereby revised as such: how can I implement a
> non-blocking read of a subprocess pipe that can write data to the
> Tkinter text widget in an manner that does not cause the GUI to lock up?

You could do blocking reads in a separate thread and use a queue to 
communicate with the GUI in the main thread:

http://effbot.org/zone/tkinter-threads.htm




More information about the Python-list mailing list