wxpython TreeCtrl with os.listdir

V

vedrandekovic

Hello,

Does anybody know how can I "insert" os.listdir items in wx python
TreeCtrl and every item assign adequately
icon on this example
import wx


class TestFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, title="simple tree with icons",
size=(400,500))


il = wx.ImageList(16,16)

# adequately icons
self.fldridx = il.Add(wx.ArtProvider.GetBitmap(wx.ART_FOLDER,
wx.ART_OTHER, (16,16))) # icon for os.listdir folder
self.fldropenidx =
il.Add(wx.ArtProvider.GetBitmap(wx.ART_FILE_OPEN,wx.ART_OTHER,
(16,16)))
# icon for os.listdir file
self.fileidx =
il.Add(wx.ArtProvider.GetBitmap(wx.ART_NORMAL_FILE, wx.ART_OTHER,
(16,16)))
# icon for os.listdir open folder



self.tree = wx.TreeCtrl(self)

self.tree.AssignImageList(il)
root = self.tree.AddRoot("wx.Object")
self.tree.SetItemImage(root,
self.fldridx,wx.TreeItemIcon_Normal)
self.tree.SetItemImage(root,
self.fldropenidx,wx.TreeItemIcon_Expanded)

self.AddTreeNodes(root, data.tree) # There must be os.listdir
items
self.tree.Expand(root)


def AddTreeNodes(self, parentItem, items):
for item in items:
if type(item) == str:
newItem = self.tree.AppendItem(parentItem, item)
self.tree.SetItemImage(newItem,
self.fileidx,wx.TreeItemIcon_Normal)
else:
newItem = self.tree.AppendItem(parentItem, item[0])
self.tree.SetItemImage(newItem,
self.fldridx,wx.TreeItemIcon_Normal)
self.tree.SetItemImage(newItem,
self.fldropenidx,wx.TreeItemIcon_Expanded)

self.AddTreeNodes(newItem, item[1])


def GetItemText(self, item):
if item:
return self.tree.GetItemText(item)
else:
return ""

app = wx.PySimpleApp(redirect=True)
frame = TestFrame()
frame.Show()
app.MainLoop()



Regards,
Vedran
 
K

kyosohma

Hello,

Does anybody know how can I "insert" os.listdir items in wx python
TreeCtrl and every item assign adequately
icon on this example
import wx

class TestFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, title="simple tree with icons",
size=(400,500))

il = wx.ImageList(16,16)

# adequately icons
self.fldridx = il.Add(wx.ArtProvider.GetBitmap(wx.ART_FOLDER,
wx.ART_OTHER, (16,16))) # icon for os.listdir folder
self.fldropenidx =
il.Add(wx.ArtProvider.GetBitmap(wx.ART_FILE_OPEN,wx.ART_OTHER,
(16,16)))
# icon for os.listdir file
self.fileidx =
il.Add(wx.ArtProvider.GetBitmap(wx.ART_NORMAL_FILE, wx.ART_OTHER,
(16,16)))
# icon for os.listdir open folder

self.tree = wx.TreeCtrl(self)

self.tree.AssignImageList(il)
root = self.tree.AddRoot("wx.Object")
self.tree.SetItemImage(root,
self.fldridx,wx.TreeItemIcon_Normal)
self.tree.SetItemImage(root,
self.fldropenidx,wx.TreeItemIcon_Expanded)

self.AddTreeNodes(root, data.tree) # There must be os.listdir
items
self.tree.Expand(root)

def AddTreeNodes(self, parentItem, items):
for item in items:
if type(item) == str:
newItem = self.tree.AppendItem(parentItem, item)
self.tree.SetItemImage(newItem,
self.fileidx,wx.TreeItemIcon_Normal)
else:
newItem = self.tree.AppendItem(parentItem, item[0])
self.tree.SetItemImage(newItem,
self.fldridx,wx.TreeItemIcon_Normal)
self.tree.SetItemImage(newItem,
self.fldropenidx,wx.TreeItemIcon_Expanded)

self.AddTreeNodes(newItem, item[1])

def GetItemText(self, item):
if item:
return self.tree.GetItemText(item)
else:
return ""

app = wx.PySimpleApp(redirect=True)
frame = TestFrame()
frame.Show()
app.MainLoop()

Regards,
Vedran

This looks like something to post to the wxPython user's group, found
here: http://www.wxpython.org/maillist.php

The treectrl is one of the more complicated widgets of the wxPython
set.

Mike
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,576
Members
45,054
Latest member
LucyCarper

Latest Threads

Top