wxpython 读书笔记(0.15)读取目录 生成树状结构图
啄木鸟上面有还在翻译的:http://wiki.woodpecker.org.cn/moin/WxPythonInAction
wxpython中第15节有树状控件说明
- 加入节点
# -*- coding:UTF-8 -*-
import wx
class TestFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, title="simple tree", size=(400,500))
# Create the tree
self.tree = wx.TreeCtrl(self)
# Add a root node
rootID = self.tree.AddRoot("根节点")
# Expand the first level
self.tree.Expand(rootID)
app = wx.App()
frame = TestFrame()
frame.Show()
app.MainLoop()
# -*- coding:UTF-8 -*-
import wx
class TestFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, title="simple tree", size=(400,500))
# Create the tree
self.tree = wx.TreeCtrl(self)
# Add a root node
rootID = self.tree.AddRoot("根节点")
childID1 = self.tree.AppendItem(rootID, "子节点1级")
# Expand the first level
self.tree.Expand(rootID)
app = wx.App()
frame = TestFrame()
frame.Show()
app.MainLoop()
# -*- coding:UTF-8 -*-
import wx
class TestFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, title="simple tree", size=(400,500))
# Create the tree
self.tree = wx.TreeCtrl(self)
# Add a root node
rootID = self.tree.AddRoot("根节点")
childID1 = self.tree.AppendItem(rootID, "子节点1级")
childID2 = self.tree.AppendItem(childID1, "子节点2级")
# Expand the first level
self.tree.Expand(rootID)
app = wx.App()
frame = TestFrame()
frame.Show()
app.MainLoop()
- 取出目录以及子目录数据
os.listdir(dirname):列出dirname下的目录和文件
# -*- coding:UTF-8 -*-
import wx
import os
class TestFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, title="simple tree", size=(400,500))
# Create the tree
self.tree = wx.TreeCtrl(self)
# Add a root node
rootID = self.tree.AddRoot("根节点")
for i in os.listdir('/home/bigzhu'):
childID1 = self.tree.AppendItem(rootID, i)
self.tree.Expand(rootID)
app = wx.App()
frame = TestFrame()
frame.Show()
app.MainLoop()
# -*- coding:utf-8 -*-
import wx
import os
def appendDir(tree, treeID, sListDir):
"""遍历路径,将文件生成节点加入到wx的tree中
tree wx的tree
treeID 上级treeID
sListDir 一个绝对路径,会自动遍历下面的子目录
"""
#有些目录没有权限访问的,避免其报错
try:
ListFirstDir = os.listdir(sListDir)
for i in ListFirstDir:
sAllDir = sListDir+"/"+i
#有些目录名非法,无法生成节点,只有try一把
try:
childID = tree.AppendItem(treeID, i)
except:
childID = tree.AppendItem(treeID, "非法名称")
#如果是目录,那么递归
if os.path.isdir(sAllDir):
appendDir(tree, childID, sAllDir)
except:
pass
class TestFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, title="simple tree", size=(400,500))
# Create the tree
self.tree = wx.TreeCtrl(self)
# Add a root node
rootID = self.tree.AddRoot("根节点")
#appendDir(self.tree,rootID, "/home/bigzhu/code")
appendDir(self.tree, rootID, "/home/bigzhu/Desktop")
self.tree.Expand(rootID)
app = wx.PySimpleApp()
frame = TestFrame()
frame.Show()
app.MainLoop()