镇平微网站开发,教育网站建设 飞沐,码制作二维码生成器,做一个h5需要多少钱wxPython树控件介绍
树#xff08;tree#xff09;是一种通过层次结构展示信息的控件#xff0c;如下图所示是树控件示例#xff0c;左窗口中是树控件#xff0c;在wxPython中树控件类是wx.TreeCtrl。 wx.TreeCtrl常用的方法有
AddRoot(text, image-1, selImage-1, data…wxPython树控件介绍
树tree是一种通过层次结构展示信息的控件如下图所示是树控件示例左窗口中是树控件在wxPython中树控件类是wx.TreeCtrl。 wx.TreeCtrl常用的方法有
AddRoot(text, image-1, selImage-1, dataNone)。添加根节点text参数根节点显示的文本image参数是该节点未被选中时的图片索引wx.TreeCtrl中使用的图片被放到wx.ImageList图像列表中selImage参数是该节点被选中时的图片索引。data参数是给节点传递的数据。方法返回节点节点类型是wx.TreeItemId。AppendItem(parent, text, image-1, selImage-1, dataNone)。添加子节点parent 参数是父节点其他参数同AddRoot()方法。方法返回值wx.TreeItemId。SelectItem(item, selectTrue)。选中item节点。Expand(item)。展开item节点。ExpandAll()。展开根节点下的所有子节点。ExpandAllChildren(item)。展开item节点下的所有子节点。AssignImageList(imageList)。将wx.ImageList图像列表保存到树中这样就可以在AddRoot()和AppendItem()方法中使用图像列表索引了。
import wx# 自定义窗口类MyFrame
class MyFrame(wx.Frame):def __init__(self):super().__init__(parentNone, titleTree, size(500, 400))self.Center()swindow wx.SplitterWindow(parentself, id-1)left wx.Panel(parentswindow)right wx.Panel(parentswindow)# 设置左右布局的分割窗口left和rightswindow.SplitVertically(left, right, 200)# 设置最小窗格大小左右布局指左边窗口大小swindow.SetMinimumPaneSize(80)# 创建一棵树self.tree self.CreateTreeCtrl(left)self.Bind(wx.EVT_TREE_SEL_CHANGING, self.on_click, self.tree)# 为left面板设置一个布局管理器vbox1 wx.BoxSizer(wx.VERTICAL)left.SetSizer(vbox1)vbox1.Add(self.tree, 1, flagwx.EXPAND | wx.ALL, border5)# 为right面板设置一个布局管理器vbox2 wx.BoxSizer(wx.VERTICAL)right.SetSizer((vbox2))self.st wx.StaticText(right, 2, label右侧面板)vbox2.Add(self.st, 1, flagwx.EXPAND | wx.ALL, border5)def on_click(self, event):item event.GetItem()self.st.SetLabel(self.tree.GetItemText(item))def CreateTreeCtrl(self, parent):tree wx.TreeCtrl(parent)# 通过wx.ImageList()创建一个图像列表imglist并保存在树中imglist wx.ImageList(16, 16, True, 2)imglist.Add(wx.ArtProvider.GetBitmap(wx.ART_FOLDER, sizewx.Size(16, 16)))imglist.Add(wx.ArtProvider.GetBitmap(wx.ART_NORMAL_FILE, size(16, 16)))tree.AssignImageList(imglist)# 创建根节点和5个子节点并展开root tree.AddRoot(TreeRoot, image0)item1 tree.AppendItem(root, Item1, 0)item2 tree.AppendItem(root, Item2, 0)item3 tree.AppendItem(root, Item3, 0)item4 tree.AppendItem(root, Item4, 0)item5 tree.AppendItem(root, Item5, 0)tree.Expand(root)tree.SelectItem(root)# 给item1节点添加5个子节点并展开tree.AppendItem(item1, file 1, 1)tree.AppendItem(item1, file 2, 1)tree.AppendItem(item1, file 3, 1)tree.AppendItem(item1, file 4, 1)tree.AppendItem(item1, file 5, 1)tree.Expand(item1)# 给item2节点添加5个子节点并展开tree.AppendItem(item2, file 1, 1)tree.AppendItem(item2, file 2, 1)tree.AppendItem(item2, file 3, 1)tree.AppendItem(item2, file 4, 1)tree.AppendItem(item2, file 5, 1)tree.Expand(item2)# 返回树对象return treeclass App(wx.App):def OnInit(self):# 创建窗口对象frame MyFrame()frame.Show()return Truedef OnExit(self):print(应用程序退出)return 0if __name__ __main__:app App()app.MainLoop()