"Book" Controls → Treebook

Overview = """\

wx.Treebook

This class is a control similar to a notebook control, but with a
wx.TreeCtrl instead of a set of tabs.

"""
   
import wx
import os.path
import random

class Frame(wx.Frame):

def __init__(
  self, parent=None, id=wx.ID_ANY, title='Treebook', pos=wx.DefaultPosition,
  size=wx.DefaultSize, style=wx.DEFAULT_FRAME_STYLE
  ):
  
  wx.Frame.__init__(self, parent, id, title, pos, size, style)
  self.SetIcon(wx.Icon('wxWidgets.ico', wx.BITMAP_TYPE_ICO))
  
  panel = wx.Panel(self, wx.ID_ANY)
   
  Treebook = wx.Treebook(panel, wx.ID_ANY, style=wx.BK_DEFAULT)
  
  pageTitles = ['C', 'C++', 'Python', 'Java', 'Perl', 'JavaScript', 'C#', 'AWK']
  imageList = wx.ImageList(40, 40)
  for num in range(1, len(pageTitles)+1):
   imageList.Add(wx.Bitmap(os.path.join(os.getcwd(), 'bmp', str(num)+'.bmp'), wx.BITMAP_TYPE_BMP))
   
  Treebook.AssignImageList(imageList)
  for id, title in enumerate(pageTitles):
  
   textCtrl = wx.TextCtrl(Treebook, wx.ID_ANY,
           'This is Page Of %s!\n\nInput some text about %s!' % (title, title), style=wx.TE_MULTILINE)
   # Treebook.AddPage(textCtrl, title, imageId=id)
   Treebook.AddPage(textCtrl, title, imageId=random.randint(1, len(pageTitles)-1))
   
   textCtrl = wx.TextCtrl(Treebook, wx.ID_ANY,
                          'This is Subpage of Page %s!' % title,
                          style=wx.TE_MULTILINE)
   Treebook.AddSubPage(textCtrl, title,
                       imageId=random.randint(1, len(pageTitles)-1))
   Treebook.AddSubPage(textCtrl, title,
                       imageId=random.randint(1, len(pageTitles)-1))
  
  
  sizer = wx.BoxSizer()
  sizer.Add(Treebook, 1, wx.EXPAND)
  panel.SetSizer(sizer)
  
  
  
def TestFrame():
app = wx.PySimpleApp()
frame = Frame(size=(640, 480))
frame.Centre()
frame.Show()
app.MainLoop()


if __name__ == '__main__':
TestFrame()