+++ /dev/null
-import wx
-
-class SplitterExampleFrame(wx.Frame):
- def __init__(self, parent, title):
- wx.Frame.__init__(self, parent, title=title)
- self.MakeMenuBar()
- self.minpane = 0
- self.initpos = 0
- self.sp = wx.SplitterWindow(self)
- self.p1 = wx.Panel(self.sp, style=wx.SUNKEN_BORDER)
- self.p2 = wx.Panel(self.sp, style=wx.SUNKEN_BORDER)
- self.p1.SetBackgroundColour("pink")
- self.p2.SetBackgroundColour("sky blue")
- self.p1.Hide()
- self.p2.Hide()
-
- self.sp.Initialize(self.p1)
-
- self.Bind(wx.EVT_SPLITTER_SASH_POS_CHANGING,
- self.OnSashChanging, self.sp)
- self.Bind(wx.EVT_SPLITTER_SASH_POS_CHANGED,
- self.OnSashChanged, self.sp)
-
-
- def MakeMenuBar(self):
- menu = wx.Menu()
- item = menu.Append(-1, "Split horizontally")
- self.Bind(wx.EVT_MENU, self.OnSplitH, item)
- self.Bind(wx.EVT_UPDATE_UI, self.OnCheckCanSplit, item)
- item = menu.Append(-1, "Split vertically")
- self.Bind(wx.EVT_MENU, self.OnSplitV, item)
- self.Bind(wx.EVT_UPDATE_UI, self.OnCheckCanSplit, item)
- item = menu.Append(-1, "Unsplit")
- self.Bind(wx.EVT_MENU, self.OnUnsplit, item)
- self.Bind(wx.EVT_UPDATE_UI, self.OnCheckCanUnsplit, item)
-
- menu.AppendSeparator()
- item = menu.Append(-1, "Set initial sash position")
- self.Bind(wx.EVT_MENU, self.OnSetPos, item)
- item = menu.Append(-1, "Set minimum pane size")
- self.Bind(wx.EVT_MENU, self.OnSetMin, item)
-
- menu.AppendSeparator()
- item = menu.Append(wx.ID_EXIT, "E&xit")
- self.Bind(wx.EVT_MENU, self.OnExit, item)
-
- mbar = wx.MenuBar()
- mbar.Append(menu, "Splitter")
- self.SetMenuBar(mbar)
-
-
- def OnSashChanging(self, evt):
- print "OnSashChanging:", evt.GetSashPosition()
-
- def OnSashChanged(self, evt):
- print "OnSashChanged:", evt.GetSashPosition()
-
-
- def OnSplitH(self, evt):
- self.sp.SplitHorizontally(self.p1, self.p2, self.initpos)
-
- def OnSplitV(self, evt):
- self.sp.SplitVertically(self.p1, self.p2, self.initpos)
-
- def OnCheckCanSplit(self, evt):
- evt.Enable(not self.sp.IsSplit())
-
- def OnCheckCanUnsplit(self, evt):
- evt.Enable(self.sp.IsSplit())
-
- def OnUnsplit(self, evt):
- self.sp.Unsplit()
-
- def OnSetMin(self, evt):
- minpane = wx.GetNumberFromUser(
- "Enter the minimum pane size",
- "", "Minimum Pane Size", self.minpane,
- 0, 1000, self)
- if minpane != -1:
- self.minpane = minpane
- self.sp.SetMinimumPaneSize(self.minpane)
-
- def OnSetPos(self, evt):
- initpos = wx.GetNumberFromUser(
- "Enter the initial sash position (to be used in the Split call)",
- "", "Initial Sash Position", self.initpos,
- -1000, 1000, self)
- if initpos != -1:
- self.initpos = initpos
-
-
- def OnExit(self, evt):
- self.Close()
-
-
-app = wx.PySimpleApp(redirect=True)
-frm = SplitterExampleFrame(None, "Splitter Example")
-frm.SetSize((600,500))
-frm.Show()
-app.SetTopWindow(frm)
-app.MainLoop()