splitterwindows === ```python import wx class Mywin(wx.Frame): def __init__(self, parent, title): super(Mywin, self).__init__(parent, title=title, size=(350, 300)) splitter = wx.SplitterWindow(self, -1) l_panel = wx.Panel(splitter, -1) r_panel = wx.Panel(splitter, -1) # left panel lst = wx.ListBox( l_panel, size=(100, 300), choices=['C', 'C++', 'Java', 'Python', 'Perl', 'JavaScript', 'PHP', 'VB.NET', 'C#'], style=wx.LB_SINGLE ) l_hbox = wx.BoxSizer(wx.HORIZONTAL) l_hbox.Add(lst, 1) l_panel.SetSizer(l_hbox) # right panel self.text = wx.TextCtrl(r_panel, style=wx.TE_MULTILINE) r_hbox = wx.BoxSizer(wx.HORIZONTAL) r_hbox.Add(self.text, 1, wx.EXPAND) r_panel.SetSizerAndFit(r_hbox) splitter.SplitVertically(l_panel, r_panel) self.Centre() self.Bind(wx.EVT_LISTBOX, self.onListBox, lst) self.Show(True) def onListBox(self, event): self.text.AppendText("Current selection: " + event.GetEventObject().GetStringSelection() + "\n") ex = wx.App() Mywin(None, 'Splitter Demo - www.tw511.com') ex.MainLoop() ``` ## 執行wxSplitterwindow.SplitVertically,左側總是被收合? {% embed url="https://stackoverflow.com/questions/32195823/wxpython-wxsplitterwindow-splitvertically-always-shows-uneven-split" %} * `splitter.SplitVertically(l_panel, r_panel, 100)` 第三個參數為正數,從左側開始預留的大小 第三個參數為負數,從右側開始預留的大小 若為`wxSplitterwindow.SplitHorizontally(l_panel, r_panel, 100)`,則 第三個參數為正數,從底部開始預留的大小 第三個參數為負數,從頂部開始預留的大小 ## Ref. [http://www.tw511.com/3/48/1631.html](http://www.tw511.com/3/48/1631.html) [https://www.blog.pythonlibrary.org/2013/10/18/wxpython-an-introduction-to-splitterwindows/](https://www.blog.pythonlibrary.org/2013/10/18/wxpython-an-introduction-to-splitterwindows/) [四格 fourwayspliter](https://wxpython.org/Phoenix/docs/html/wx.lib.agw.fourwaysplitter.html) ###### tags: `wxPython`