# -*-mode: python; fill-column: 75; tab-width: 8; coding: iso-latin-1-unix -*- # # $Id$ # # Tix Demostration Program # # This sample program is structured in such a way so that it can be # executed from the Tix demo program "tixwidgets.py": it must have a # procedure called "RunSample". It should also have the "if" statment # at the end of this file so that it can be run as a standalone # program. # This file demonstrates how to use the TixTree widget to display # dynamic hierachical data (the files in the Unix file system) # import Tix, os def RunSample(w): top = Tix.Frame(w, relief=Tix.RAISED, bd=1) tree = Tix.Tree(top, options='separator "/"') tree.pack(expand=1, fill=Tix.BOTH, padx=10, pady=10, side=Tix.LEFT) tree['opencmd'] = lambda dir=None, w=tree: opendir(w, dir) # The / directory is added in the "open" mode. The user can open it # and then browse its subdirectories ... adddir(tree, "/") box = Tix.ButtonBox(w, orientation=Tix.HORIZONTAL) box.add('ok', text='Ok', underline=0, command=w.destroy, width=6) box.add('cancel', text='Cancel', underline=0, command=w.destroy, width=6) box.pack(side=Tix.BOTTOM, fill=Tix.X) top.pack(side=Tix.TOP, fill=Tix.BOTH, expand=1) def adddir(tree, dir): if dir == '/': text = '/' else: text = os.path.basename(dir) tree.hlist.add(dir, itemtype=Tix.IMAGETEXT, text=text, image=tree.tk.call('tix', 'getimage', 'folder')) try: os.listdir(dir) tree.setmode(dir, 'open') except os.error: # No read permission ? pass # This function is called whenever the user presses the (+) indicator or # double clicks on a directory whose mode is "open". It loads the files # inside that directory into the Tree widget. # # Note we didn't specify the closecmd option for the Tree widget, so it # performs the default action when the user presses the (-) indicator or # double clicks on a directory whose mode is "close": hide all of its child # entries def opendir(tree, dir): entries = tree.hlist.info_children(dir) if entries: # We have already loaded this directory. Let's just # show all the child entries # # Note: since we load the directory only once, it will not be # refreshed if the you add or remove files from this # directory. # for entry in entries: tree.hlist.show_entry(entry) files = os.listdir(dir) for file in files: if os.path.isdir(dir + '/' + file): adddir(tree, dir + '/' + file) else: tree.hlist.add(dir + '/' + file, itemtype=Tix.IMAGETEXT, text=file, image=tree.tk.call('tix', 'getimage', 'file')) if __name__ == '__main__': root = Tix.Tk() RunSample(root) root.mainloop()
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
.Balloon.pyo.40009 | File | 2.59 KB | 0644 |
|
.BtnBox.pyo.40009 | File | 1.31 KB | 0644 |
|
.CmpImg.pyo.40009 | File | 6.4 KB | 0644 |
|
.ComboBox.pyo.40009 | File | 2.74 KB | 0644 |
|
.Control.pyo.40009 | File | 3.94 KB | 0644 |
|
.DirList.pyo.40009 | File | 4.4 KB | 0644 |
|
.DirTree.pyo.40009 | File | 3.98 KB | 0644 |
|
.NoteBook.pyo.40009 | File | 2.84 KB | 0644 |
|
.OptMenu.pyo.40009 | File | 2.1 KB | 0644 |
|
.PanedWin.pyo.40009 | File | 4.13 KB | 0644 |
|
.PopMenu.pyo.40009 | File | 1.83 KB | 0644 |
|
.SHList1.pyo.40009 | File | 3.59 KB | 0644 |
|
.SHList2.pyo.40009 | File | 4.46 KB | 0644 |
|
.Tree.pyo.40009 | File | 2.3 KB | 0644 |
|
Balloon.py | File | 2.21 KB | 0644 |
|
Balloon.pyc | File | 2.59 KB | 0644 |
|
Balloon.pyo | File | 2.59 KB | 0644 |
|
BtnBox.py | File | 1.53 KB | 0644 |
|
BtnBox.pyc | File | 1.31 KB | 0644 |
|
BtnBox.pyo | File | 1.31 KB | 0644 |
|
CmpImg.py | File | 7.05 KB | 0644 |
|
CmpImg.pyc | File | 6.4 KB | 0644 |
|
CmpImg.pyo | File | 6.4 KB | 0644 |
|
ComboBox.py | File | 3.33 KB | 0644 |
|
ComboBox.pyc | File | 2.74 KB | 0644 |
|
ComboBox.pyo | File | 2.74 KB | 0644 |
|
Control.py | File | 4.03 KB | 0644 |
|
Control.pyc | File | 3.94 KB | 0644 |
|
Control.pyo | File | 3.94 KB | 0644 |
|
DirList.py | File | 4.46 KB | 0644 |
|
DirList.pyc | File | 4.4 KB | 0644 |
|
DirList.pyo | File | 4.4 KB | 0644 |
|
DirTree.py | File | 3.97 KB | 0644 |
|
DirTree.pyc | File | 3.98 KB | 0644 |
|
DirTree.pyo | File | 3.98 KB | 0644 |
|
NoteBook.py | File | 3.87 KB | 0644 |
|
NoteBook.pyc | File | 2.84 KB | 0644 |
|
NoteBook.pyo | File | 2.84 KB | 0644 |
|
OptMenu.py | File | 2.39 KB | 0644 |
|
OptMenu.pyc | File | 2.1 KB | 0644 |
|
OptMenu.pyo | File | 2.1 KB | 0644 |
|
PanedWin.py | File | 3.74 KB | 0644 |
|
PanedWin.pyc | File | 4.13 KB | 0644 |
|
PanedWin.pyo | File | 4.13 KB | 0644 |
|
PopMenu.py | File | 2.05 KB | 0644 |
|
PopMenu.pyc | File | 1.83 KB | 0644 |
|
PopMenu.pyo | File | 1.83 KB | 0644 |
|
SHList1.py | File | 3.87 KB | 0644 |
|
SHList1.pyc | File | 3.59 KB | 0644 |
|
SHList1.pyo | File | 3.59 KB | 0644 |
|
SHList2.py | File | 5.5 KB | 0644 |
|
SHList2.pyc | File | 4.46 KB | 0644 |
|
SHList2.pyo | File | 4.46 KB | 0644 |
|
Tree.py | File | 2.79 KB | 0644 |
|
Tree.pyc | File | 2.3 KB | 0644 |
|
Tree.pyo | File | 2.3 KB | 0644 |
|