放弃EditLabel wxtreectrl上的更改

时间:2015-09-04 06:55:38

标签: python wxpython

我有一个TreeCtrl,用户可以在其中编辑项目的标签。 但是,如果用户在输入为空时按Enter键,则应将label设置为其以前的状态。我能够做到这一点,但有一个错误。

这是"工作流程"

标签显示'项目'

  1. 用户开始编辑标签
  2. 用户输入''
  3. 用户按下
  4. 标签显示''
  5. 用户开始编辑标签
  6. 用户不做任何更改,输入'
  7. 用户按下
  8. 标签显示'项目'
  9. 代码示例

    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()
    

1 个答案:

答案 0 :(得分:0)

我找到了自己的答案

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