symbian-qemu-0.9.1-12/python-2.6.1/Demo/tkinter/guido/listtree.py
changeset 1 2fb8b9db1c86
equal deleted inserted replaced
0:ffa851df0825 1:2fb8b9db1c86
       
     1 # List a remote app's widget tree (names and classes only)
       
     2 
       
     3 import sys
       
     4 import string
       
     5 
       
     6 from Tkinter import *
       
     7 
       
     8 def listtree(master, app):
       
     9     list = Listbox(master, name='list')
       
    10     list.pack(expand=1, fill=BOTH)
       
    11     listnodes(list, app, '.', 0)
       
    12     return list
       
    13 
       
    14 def listnodes(list, app, widget, level):
       
    15     klass = list.send(app, 'winfo', 'class', widget)
       
    16 ##      i = string.rindex(widget, '.')
       
    17 ##      list.insert(END, '%s%s (%s)' % ((level-1)*'.   ', widget[i:], klass))
       
    18     list.insert(END, '%s (%s)' % (widget, klass))
       
    19     children = list.tk.splitlist(
       
    20             list.send(app, 'winfo', 'children', widget))
       
    21     for c in children:
       
    22         listnodes(list, app, c, level+1)
       
    23 
       
    24 def main():
       
    25     if not sys.argv[1:]:
       
    26         sys.stderr.write('Usage: listtree appname\n')
       
    27         sys.exit(2)
       
    28     app = sys.argv[1]
       
    29     tk = Tk()
       
    30     tk.minsize(1, 1)
       
    31     f = Frame(tk, name='f')
       
    32     f.pack(expand=1, fill=BOTH)
       
    33     list = listtree(f, app)
       
    34     tk.mainloop()
       
    35 
       
    36 if __name__ == '__main__':
       
    37     main()