放弃对 EditLabel wxtreectrl 的更改

Discard changes on EditLabel wxtreectrl

我有一个 TreeCtrl,用户可以在其中编辑项目的标签。 但是,如果用户在输入为空时按下回车键,则标签应设置为其之前的状态。我能够完成这个,但是有一个错误。

这是"workflow"

标签显示 'item'

  1. 用户开始编辑标签
  2. 用户输入''
  3. 用户按下回车键
  4. 标签显示''
  5. 用户开始编辑标签
  6. 用户未进行任何更改,输入 ''
  7. 用户按下回车键
  8. 标签显示 'item'

代码示例

def on_rename(self, event):
    treeItemId = self.tree.GetSelection()
    self.tree.EditLabel(treeItemId)

def on_rename_end(self, event):
    name = event.GetLabel()
    treeItemId = self.tree.GetSelection()
    pydata = self.tree.GetPyData(treeItemId)
    if len(name) <= 0:
        # pydata[1] == 'item'
        self.tree.SetItemText(treeItemId, pydata[1]) 
    else:
        dostuff()
        set_new_pydata()

我找到了自己的答案

if len(name) <= 0:
    event.Veto()