This might help:
import wx
class DemoFrame(wx.Frame):
def __init__(self, parent, id):
wx.Frame.__init__(self, parent, id, 'Demo', size=(600, 400), pos=(300,300))
# make the widgets ...
self.panel1=wx.Panel (self, -1)
self.panel1.SetBackgroundColour ("white")
# create splitter windows
self.splitter = wx.SplitterWindow(self,
style=wx.CLIP_CHILDREN | wx.SP_LIVE_UPDATE | wx.SP_3D)
self.splitter2 = wx.SplitterWindow(self.splitter, -1,
style=wx.CLIP_CHILDREN | wx.SP_LIVE_UPDATE | wx.SP_3D)
self.mainpanel = wx.Panel(self.splitter, -1)
self.leftpanel2 = wx.Panel(self.splitter2, -1, style=wx.WANTS_CHARS)
self.mainpanel.SetBackgroundColour ("white")
self.splitter2.SetBackgroundColour (wx.SystemSettings_GetColour(wx.SYS_COLOUR_3DFACE))
# create tree control
self.tree = wx.TreeCtrl(self.mainpanel, -1, wx.Point(0, 0), wx.Size(160, 250),
wx.TR_DEFAULT_STYLE | wx.NO_BORDER)
self.root = self.tree.AddRoot("Root Demo Item")
item1 = self.tree.AppendItem (self.root, "Item1",0)
item2 = self.tree.AppendItem (self.root, "Item2",0)
self.tree.Expand(self.root)
# add other widgets
self.help = wx.TextCtrl(self.splitter2, -1,
style = wx.TE_MULTILINE|wx.TE_READONLY | wx.HSCROLL)
self.staticboxstyles = wx.StaticBox(self.leftpanel2, -1, "Demo", size=(485, 240))
self.DoLayout ()
# bind tree action
self.Bind(wx.EVT_TREE_SEL_CHANGED, self.OnSelChanged, self.tree)
def DoLayout (self):
# sizers
mainsizer = wx.BoxSizer(wx.VERTICAL)
panelsizer = wx.BoxSizer(wx.VERTICAL)
sizer1 = wx.BoxSizer(wx.VERTICAL)
sizer2 = wx.BoxSizer(wx.VERTICAL)
# add widgets to sizers
panelsizer.Add(self.splitter, 1, wx.EXPAND, 0)
sizer1.Add(self.tree, 1, wx.EXPAND)
sizer2.Add(self.staticboxstyles, 1, wx.BOTTOM|wx.EXPAND|wx.ALIGN_BOTTOM, 60 )
# set sizers
self.mainpanel.SetSizer(sizer1)
self.leftpanel2.SetSizer(sizer2)
self.SetSizer(panelsizer)
mainsizer.Layout()
self.Layout()
# set splitters
self.splitter.SplitVertically(self.mainpanel, self.splitter2, 300)
self.splitter2.SplitHorizontally(self.leftpanel2, self.help, -160)
self.splitter.SetSashPosition (200)
def OnSelChanged(self, event):
self.item = event.GetItem()
select = self.tree.GetItemText(self.item)
if self.item:
# test (create your help string here)
str1 = "Selected item = %s\n" % select
self.help.SetValue(str1)
if select == 'Item1':
# test (create your check boxes instead)
self.staticbox_check = wx.StaticBox(self.leftpanel2, -1, "Check",
pos=(10, 20), size=(300, 100))
if select == 'Item2':
# test (create your radio buttons instead)
self.staticbox_check = wx.StaticBox(self.leftpanel2, -1, "Radio",
pos=(10, 20), size=(300, 100))
if __name__ == '__main__':
app = wx.PySimpleApp() …