In this article we are going to learn about another function in wxPython, that is, CollapseAndReset() method associated with wx.TreeCtrl class of wxPython. CollapseAndReset() function simply collapses a particular item and removes all its children.
It takes TreeItemId as argument.
Syntax: wx.TreeCtrl.CollapseAndReset(Self, item)
Code Example:
Python
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 self .tree = MyTree( self , wx.ID_ANY, wx.DefaultPosition, ( 150 , 150 ), wx.TR_HAS_BUTTONS) # Add root to Tree Control self .root = self .tree.AddRoot( 'Root' ) # Add item to root self .itm = self .tree.AppendItem( self .root, 'Item' ) # Add item to 'itm' self .itm2 = self .tree.AppendItem( self .itm, "Sub Item" ) # Add child item to itm2 self .itm3 = self .tree.AppendItem( self .itm2, "Another Item" ) # Expand whole tree self .tree.ExpandAll() sizer = wx.BoxSizer(wx.VERTICAL) sizer.Add( self .tree, 0 , wx.EXPAND) self .SetSizer(sizer) # Add button in frame self .btn = wx.Button( self , 1 , "Collapse" , ( 10 , 100 )) # Bind event function with button self .btn.Bind(wx.EVT_BUTTON, self .onclick) def onclick( self , e): # collapse all children of itm recursively self .tree.CollapseAndReset( self .itm) 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: