TKinter + display of a shell command return

Eric Brunel eric_brunel at despammed.com
Wed Sep 8 11:49:57 EDT 2004


Yann.K wrote:
> Hello.
> 
> Using Tkinter, i would create a widget which display a shell command return.
> This return is long, and i would display a real time display (like with the
> tail -f commande on Linux)
> 
> I think to use the text widget.
> I have no problem to execute the command, but how to display, in a
> *real-time* fashion the shell retrun?

What is your problem here? Inserting at the end of the text and call the see 
method on the text widget to make sure the last line is displayed should be 
enough. An update_idletasks may also be needed to actually display something, 
but it depends on the architecture of your script, typically on whether you use 
threads or not.

A basic script doing what you want is:

--shell_output.py---------------------
import os
from Tkinter import *

root = Tk()
t = Text(root)
t.pack()

def go():
   p = os.popen("find . -name '*.py'", 'r')
   for l in p.xreadlines():
     t.insert(END, '%s\n' % l.rstrip())
     t.see(END)
     t.update_idletasks()

Button(root, text='Go', command=go).pack()

root.mainloop()
--------------------------------------

HTH
-- 
- Eric Brunel <eric (underscore) brunel (at) despammed (dot) com> -
PragmaDev : Real Time Software Development Tools - http://www.pragmadev.com




More information about the Python-list mailing list