import wx
class MyFrame(wx.Frame):
def __init__(self):
super().__init__(parent=None,title="vbox",size=(700,700)) #继承wx.Frame类
self.Center()
splitter = wx.SplitterWindow(self,-1)
leftpanel = wx.Panel(splitter)
rigntpanel = wx.Panel(splitter)
splitter.SplitVertically(leftpanel,rigntpanel,200)
splitter.SetMinimumPaneSize(80)
self.tree=self.CreateTreeCtrl(leftpanel)
self.Bind(wx.EVT_TREE_SEL_CHANGING,self.on_listbox,self.tree)
vbox1 = wx.BoxSizer(wx.VERTICAL)
vbox1.Add(self.tree,1,flag=wx.ALL | wx.EXPAND,border=5)
leftpanel.SetSizer(vbox1)
vbox2 = wx.BoxSizer(wx.VERTICAL)
self.content = wx.StaticText(rigntpanel,label='右侧面板')
vbox2.Add(self.content, 1, flag=wx.ALL | wx.EXPAND, border=5)
rigntpanel.SetSizer(vbox2)
def on_listbox(self,event):
item = event.GetItem()
self.content.SetLabel(self.tree.GetItemText(item))
def CreateTreeCtrl(self,parent):
tree = wx.TreeCtrl(parent)
imglist = wx.ImageList(16,16,True,2)
imglist.Add(wx.ArtProvider.GetBitmap(wx.ART_FOLDER,size=wx.Size(16,16)))
imglist.Add(wx.ArtProvider.GetBitmap(wx.ART_NORMAL_FILE,size=wx.Size(16,16)))
tree.AssignImageList(imglist)
items = []
root = tree.AddRoot('TreeRoot',image=0)
items.append(tree.AppendItem(root,'item 1',0))
items.append(tree.AppendItem(root,'item 2',0))
items.append(tree.AppendItem(root,'item 3',0))
items.append(tree.AppendItem(root,'item 4',0))
items.append(tree.AppendItem(root,'item 5',0))
for i in range(len(items)):
id = items[i]
tree.AppendItem(id,'subitem 1',1)
tree.AppendItem(id,'subitem 2',1)
tree.AppendItem(id,'subitem 3',1)
tree.AppendItem(id,'subitem 4',1)
tree.AppendItem(id,'subitem 5',1)
tree.Expand(root)
tree.Expand(items[0])
tree.Expand(items[3])
tree.SelectItem(root)
return tree
class App(wx.App):
def OnInit(self): #进入
frame = MyFrame()
frame.Show()
return True
def OnExit(self): #退出
print("tuichu")
return 0
if __name__ == '__main__':
app=App()
app.MainLoop()
wxpython 高级窗口以及tree的运用
最新推荐文章于 2023-12-10 16:49:52 发布