wx.Hypertreelist - 如何向其中添加小部件? / 如何使文本可编辑?
wx.Hypertreelist - How add widgets to it? / How make texts editable?
最近发现了Hypertreelist,好像是我需要的,但是没有很好的例子。所以我有几个问题:
- 如何添加 wx.Widgets?就像放置一个 Combobox
- 如何使行内的文本可编辑? Vie Doubleclick 就好了
到目前为止,这是我的代码:
import wx
import wx.lib.agw.hypertreelist as HTL
class MyFrame(wx.Frame):
def __init__(self, parent):
wx.Frame.__init__(self, parent, -1, "HyperTreeList Demo")
tree_list = HTL.HyperTreeList(self)
tree_list.AddColumn("First column")
root = tree_list.AddRoot("Root")
parent = tree_list.AppendItem(root, "First child")
child = tree_list.AppendItem(parent, "First Grandchild")
tree_list.AppendItem(root, "Second child")
app = wx.App(0)
frame = MyFrame(None)
app.SetTopWindow(frame)
frame.Show()
app.MainLoop()
您可以尝试使用 HitTest 和 EditLabel。代码可能如下所示:
pt = event.GetPosition()
item, flags, column = self.tree.HitTest(pt)
if "CP" in item.GetText():
if column > 1:
self.tree.EditLabel(item, column)
event.Skip()
最近发现了Hypertreelist,好像是我需要的,但是没有很好的例子。所以我有几个问题:
- 如何添加 wx.Widgets?就像放置一个 Combobox
- 如何使行内的文本可编辑? Vie Doubleclick 就好了
到目前为止,这是我的代码:
import wx
import wx.lib.agw.hypertreelist as HTL
class MyFrame(wx.Frame):
def __init__(self, parent):
wx.Frame.__init__(self, parent, -1, "HyperTreeList Demo")
tree_list = HTL.HyperTreeList(self)
tree_list.AddColumn("First column")
root = tree_list.AddRoot("Root")
parent = tree_list.AppendItem(root, "First child")
child = tree_list.AppendItem(parent, "First Grandchild")
tree_list.AppendItem(root, "Second child")
app = wx.App(0)
frame = MyFrame(None)
app.SetTopWindow(frame)
frame.Show()
app.MainLoop()
您可以尝试使用 HitTest 和 EditLabel。代码可能如下所示:
pt = event.GetPosition()
item, flags, column = self.tree.HitTest(pt)
if "CP" in item.GetText():
if column > 1:
self.tree.EditLabel(item, column)
event.Skip()