"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()