1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
|
import Tix as tix
class TREE(tix.Tree):
SEP = "/"
def __init__(self, win, tree_data):
tix.Tree.__init__(self, win, browsecmd=self.selectItem, options='separator "%s"'%TREE.SEP)
entries = []
self.hlist.config(bg='white', selectbackground='blue', selectforeground='white', selectmode="extended")
for dname, fnames in tree_data:
folders = dname.split(TREE.SEP)
size = len(folders)
current_dir = None
for x in range(size - 1):
if current_dir == None:
current_dir = folders[0]
else:
current_dir += TREE.SEP + folders[x]
if not current_dir in entries:
self.hlist.add(current_dir, itemtype=tix.IMAGETEXT, image=self.tk.call('tix', 'getimage', 'folder'), text=folders[x])
entries.append(current_dir)
current_dir += TREE.SEP + folders[size-1]
assert dname == self.hlist.add(current_dir, itemtype=tix.IMAGETEXT, image=self.tk.call('tix', 'getimage', 'harddisk'), text=folders[size-1])
entries.append(current_dir)
self.close(current_dir)
for fname in fnames:
_id = dname + TREE.SEP + fname
if not _id in entries:
assert _id == self.hlist.add(dname + TREE.SEP + fname, itemtype=tix.IMAGETEXT, image=self.tk.call('tix', 'getimage', 'file'), text=fname)
entries.append(_id)
else:
pass
self.autosetmode()
self.__entries = entries
def selectItem(self, *args):
pass
def getSelectedItems(self, *args):
print self.hlist.info_selection()
if __name__ == '__main__':
tree_data = [
('../disks/filedisk/Files01a', ['DOS.SYS', 'BOULDERD.ASH', 'NMPINBAL.L', 'STARFIGH.TER', 'AUTORUN.SYS', 'CAMBODIA']),
('../disks/filedisk/Files01b', ['ABRACADA.BRA', 'PREMONTY', 'ALLEYCAT', 'PHARAON']),
('../disks/filedisk/FILES02A', ['DOS.SYS', 'FLYING', 'UNKNOWN.COM', 'SPYBACK', 'BLUEMAX.XL', 'AUTORUN.SYS']),
('../disks/filedisk/FILES02B', ['FINALLEG.ACY', 'DOS.SYS', 'SHUTTLE', 'SPYHUNTE.R', 'UPNDOWN', 'KONG']),
('../disks/filedisk/FILES03A', ['DOS.SYS', 'ZENJI', 'DROPZONE', 'RIVERRAI.D', 'DEFENDER', 'AUTORUN.SYS']),
('../disks/filedisk/FILES03A.ATR', ['ZENJI', 'DROPZONE', 'RIVERRAI.D', 'DEFENDER', 'AUTORUN.SYS']),
('../disks/filedisk/FILES03B', ['DOS.SYS', 'AUTORUN.SYS', 'GYRUSS', 'FUNWITHA.RTS', 'LOSANGEL.ES']),
('../disks/filedisk/FILES04A', ['DOS.SYS', 'NEWQBERT.COM', 'FLIPFLOP.COM', 'RAINBOW.COM', 'JUICE.COM', 'AUTORUN.SYS', 'HERO']),
('../disks/filedisk/FILES04B', ['DOS.SYS', 'AZTEC', 'SHOWDOWN', 'SHAMUS2', 'AUTORUN.SYS']),
('../disks/filedisk/FILES07A', ['DOS.SYS', 'GHOSTCHA.SER', 'ARCHON.II', 'HARDHATM.AC', 'HIGHRISE'])]
win = tix.Tk()
tree = TREE(win, tree_data)
tree.pack(expand=1, fill=tix.BOTH)
tix.Button(win, text="CLIPBOARD", command=tree.getSelectedItems).pack()
win.geometry("260x400")
win.mainloop() |
Partager