Re: [Tkinter-discuss] Difficulty getting started with a BWidget Tree
That does indeed help! Thank you! -- Chris
[Original Message] From: Michael Lange <klappnase@web.de> To: <tkinter-discuss@python.org> Date: 9/15/2005 10:43:27 AM Subject: Re: [Tkinter-discuss] Difficulty getting started with a BWidget Tree
On Wed, 14 Sep 2005 23:46:57 -0400 "gilcneth@earthlink.net" <gilcneth@earthlink.net> wrote:
Hello All:
I am trying to create a Tree, using PyBWidgets, but am unsure about how to actually create the initial parent and/or child nodes. The documentation leads me to believe that I should use the' insert' command, but how? The documentation indicates the following:
pathName insert index parent node ?option value...?
So, given my example below, if I want to add a node to my Tree, wouldn't I use the command TopTree.insert? And, if so, I assume I start at index '0'? OK, but now who's the parent? I know this has to be simple, but I am just not figuring this one out. Please share your thoughts.
Hi Chris,
I wrote a directory Tree widget a while ago, rather a test than a usable widget, but maybe good enough to get started. I had some problems with my release of pybwidget, because some icons were missing, I believe the "plus" and "minus" icons for the Tree, but I don't remember exactly. So, here's the code:
############ file DirTree.py ############################## import Tkinter as tk import bwidget as bw import os
class DirTree(tk.Frame): def __init__(self, master, *args, **kw): tk.Frame.__init__(self, master) self.tree = tree = bw.Tree(self, opencmd=self.open_folder, closecmd=self.close_folder, *args, **kw) tree.pack(fill='both', expand=1)
self.folder_icon = tk.PhotoImage(file='/usr/share/pybwidget/images/folder.gif') self.openfolder_icon = tk.PhotoImage(file='/usr/share/pybwidget/images/openfold.gif') self.file_icon = tk.PhotoImage(file='/usr/share/pybwidget/images/file.gif')
node = self.tree.insert('end', 'root', text='/', image=self.folder_icon, drawcross='allways', data='/') self.tree.opentree(node, recurse=0)
def close_folder(self, node): self.tree.itemconfigure(node, image=self.folder_icon)
def open_folder(self, node): path = self.tree.itemcget(node, 'data') children = os.listdir(path) files, dirs = [], [] for item in children: if os.path.isdir(os.path.join(path, item)): dirs.append(item) #else: # files.append(item) dirs.sort() #files.sort() for item in dirs: newpath = os.path.join(path, item) self.tree.insert('end', node, text=item, image=self.folder_icon, drawcross='allways', data=newpath) #for item in files: # newpath = os.path.join(path, item) # self.tree.insert('end', node, text=item, image=self.file_icon, drawcross='never', data=newpath) self.tree.itemconfigure(node, image=self.openfolder_icon)
def test(): r = tk.Tk() t = DirTree(r, bg='white', selectbackground='blue4', selectforeground='white', deltax=18, deltay=18) t.pack(fill='both', expand=1) r.mainloop()
if __name__== '__main__': test() ##############################################################
I hope this helps
Michael _______________________________________________ Tkinter-discuss mailing list Tkinter-discuss@python.org http://mail.python.org/mailman/listinfo/tkinter-discuss
participants (1)
-
gilcneth@earthlink.net