放弃对 EditLabel wxtreectrl 的更改
Discard changes on EditLabel wxtreectrl
我有一个 TreeCtrl,用户可以在其中编辑项目的标签。
但是,如果用户在输入为空时按下回车键,则标签应设置为其之前的状态。我能够完成这个,但是有一个错误。
这是"workflow"
标签显示 'item'
- 用户开始编辑标签
- 用户输入''
- 用户按下回车键
- 标签显示''
- 用户开始编辑标签
- 用户未进行任何更改,输入 ''
- 用户按下回车键
- 标签显示 '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()
我有一个 TreeCtrl,用户可以在其中编辑项目的标签。 但是,如果用户在输入为空时按下回车键,则标签应设置为其之前的状态。我能够完成这个,但是有一个错误。
这是"workflow"
标签显示 'item'
- 用户开始编辑标签
- 用户输入''
- 用户按下回车键
- 标签显示''
- 用户开始编辑标签
- 用户未进行任何更改,输入 ''
- 用户按下回车键
- 标签显示 '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()