In this article we are going to learn about EditLabel() method associated with wx.TreeCtrl class of wxPython. Starts editing the label of the given item.
This function generates a EVT_TREE_BEGIN_LABEL_EDIT event which can be vetoed so that no text control will appear for in-place editing.
If the user changed the label (i.e. s/he does not press ESC or leave the text control without changes, a EVT_TREE_END_LABEL_EDIT event will be sent which can be vetoed as well.
Syntax: wx.TreeCtrl.EditLabel(self, item)
Parameters:
Parameters Type Description item wx.TreeItemId Item that we want to associate editlabel with.
Code Example:
Python3
import wx
class MyTree(wx.TreeCtrl):
def __init__( self , parent, id , pos, size, style):
wx.TreeCtrl.__init__( self , parent, id , pos, size, style)
class TreePanel(wx.Panel):
def __init__( self , parent):
wx.Panel.__init__( self , parent)
# create tree control in window
self .tree = MyTree( self , wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize,
wx.TR_HAS_BUTTONS)
# CREATE TREE ROOT
self .root = self .tree.AddRoot( 'root' )
self .tree.SetPyData( self .root, ( 'key' , 'value' ))
# add item to root
item = self .tree.AppendItem( self .root, "Item" )
item2 = self .tree.AppendItem( self .root, "Item" )
# expand root
self .tree.Expand( self .root)
# start editlabel
self .tree.EditLabel(item2)
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add( self .tree, 0 , wx.EXPAND)
self .SetSizer(sizer)
class MainFrame(wx.Frame):
def __init__( self ):
wx.Frame.__init__( self , parent = None , title = 'TreeCtrl Demo' )
panel = TreePanel( self )
self .Show()
if __name__ = = '__main__' :
app = wx.App(redirect = False )
frame = MainFrame()
app.MainLoop()
|
Output: