Open tuoniaoren opened 1 month ago
import wx.gizmos as gizmos import wx ID_PARAM_ARRAY = wx.NewIdRef(count=1)
class MyFrame(wx.Frame): def init(self,parent=None): super(MyFrame, self).init(parent, -1, "数表控件", size=(450, 250))
#创建树表控件 self.tree = gizmos.TreeListCtrl(self, ID_PARAM_ARRAY, style=wx.TR_DEFAULT_STYLE|wx.TR_FULL_ROW_HIGHLIGHT) self.il = wx.ImageList(16,16,True) #给树表控件添加图标 # def GetBitmap(self, id, client=None, size=None) ArtProvider系统自己提供的位图类 self.il.Add(wx.ArtProvider.GetBitmap(wx.ART_FOLDER,wx.ART_OTHER,(16,16))) self.il.Add(wx.ArtProvider.GetBitmap(wx.ART_FILE_OPEN,wx.ART_OTHER,(16,16))) self.il.Add(wx.ArtProvider.GetBitmap(wx.ART_NORMAL_FILE,wx.ART_OTHER,(16,16))) self.tree.SetImageList(self.il) #添加树表的列 self.tree.AddColumn("第1列") self.tree.AddColumn("第2列") self.tree.AddColumn("第3列") self.tree.SetColumnWidth(0,186) self.root = self.tree.AddRoot("root") self.tree.SetItemText(self.root,"随便设置",1) #设置第一行第二列的文本 self.tree.SetItemText(self.root,"与根同列",2) #设置第一行第三列的文本 for x in range(5): child = self.tree.AppendItem(self.root,str(x)) #添加一行 self.tree.SetItemText(child,str(x),0) #按照索引设置每一列的数据 self.tree.SetItemText(child,str(x),1) self.tree.SetItemText(child,str(x),2) #按照索引设置对应的图标 self.tree.SetItemImage(child,0,which = wx.TreeItemIcon_Normal) #正常的时候显示的图标的索引值 self.tree.SetItemImage(child,1,which = wx.TreeItemIcon_Expanded) #表展开的时候所显示的图标的索引值 for y in range(5): last = self.tree.AppendItem(child,str(y)) self.tree.SetItemText(last,str(x)+"-"+str(y),0) self.tree.SetItemText(last,str(x)+"-"+str(y),1) self.tree.SetItemText(last,str(x)+"-"+str(y),2) self.tree.SetItemImage(last,0,which = wx.TreeItemIcon_Normal) self.tree.SetItemImage(last,1,which = wx.TreeItemIcon_Expanded) self.tree.Expand(self.root) self.Bind(wx.EVT_TREE_ITEM_ACTIVATED, self.on_change_param, id=ID_PARAM_ARRAY) def on_change_param(self, evt): print(1111)
app = wx.App()
frame = MyFrame() frame.Show()
app.MainLoop()
python==3.10 wxpython==4.2.1
Try replacing:
self.Bind(wx.EVT_TREE_ITEM_ACTIVATED, self.on_change_param, id=ID_PARAM_ARRAY)
with:
self.tree.Bind(wx.EVT_TREE_ITEM_ACTIVATED, self.on_change_param)
import wx.gizmos as gizmos import wx ID_PARAM_ARRAY = wx.NewIdRef(count=1)
class MyFrame(wx.Frame): def init(self,parent=None): super(MyFrame, self).init(parent, -1, "数表控件", size=(450, 250))
app = wx.App()
frame = MyFrame() frame.Show()
app.MainLoop()
python==3.10 wxpython==4.2.1