Thursday, August 28, 2025
HomeLanguageswxPython – CollapseAllChildren() method in wx.TreeCtrl

wxPython – CollapseAllChildren() method in wx.TreeCtrl

In this article we are going to learn about CollapseAllChildren() method associated with wx.TreeCtrl class of wxPython. CollapseAllChildren() method is a simple method and is used to collapse a particular item and all of its children, recursively.

CollapseAllChildren() method takes TreeItemId as a parameter.

Syntax: wx.TreeCtrl.CollapseAllChildren(self, item)

Parameters:

Parameter Type Description
item wx.TreeItemId Item Id of a Tree item that we want to collapse and all of its children recursively.

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,
                                  (100,70), 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.Expand(self.root)
  
        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.CollapseAllChildren(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:

Dominic
Dominichttp://wardslaus.com
infosec,malicious & dos attacks generator, boot rom exploit philanthropist , wild hacker , game developer,
RELATED ARTICLES

Most Popular

Dominic
32244 POSTS0 COMMENTS
Milvus
80 POSTS0 COMMENTS
Nango Kala
6613 POSTS0 COMMENTS
Nicole Veronica
11786 POSTS0 COMMENTS
Nokonwaba Nkukhwana
11831 POSTS0 COMMENTS
Shaida Kate Naidoo
6726 POSTS0 COMMENTS
Ted Musemwa
7008 POSTS0 COMMENTS
Thapelo Manthata
6683 POSTS0 COMMENTS
Umr Jansen
6695 POSTS0 COMMENTS