wxPython SplitterWindow不会在Panel中展开

时间:2009-06-26 13:15:43

标签: python user-interface wxpython panel

我正在尝试一个简单的布局,由SplitterWindow划分的面板不会扩展以填充整个区域,我想要的是:

[button]   <= (fixed size)
---------                            
TEXT AREA                            }
~~~~~~~~~  <= (this is the splitter) } this is a panel
TEXT AREA                            }

实际代码是:

    import wx
    app = wx.App()
    frame = wx.Frame(None, wx.ID_ANY, "Register Translator")

    parseButton = wx.Button(frame, label="Parse")
    panel = wx.Panel(frame)
    panel.SetBackgroundColour("BLUE")
    splitter = wx.SplitterWindow(panel)
    inputArea = wx.TextCtrl(splitter, style=wx.TE_MULTILINE)
    outputArea = wx.TextCtrl(splitter, style=wx.TE_MULTILINE)
    splitter.SplitHorizontally(inputArea, outputArea)

    sizer=wx.BoxSizer(wx.VERTICAL)
    sizer.Add(parseButton, 0, wx.ALIGN_CENTER)
    sizer.Add(panel, 1, wx.EXPAND | wx.ALL)

    frame.SetSizerAndFit(sizer)
    frame.SetAutoLayout(1)

    frame.Show(True)
    app.MainLoop()

我将面板颜色设置为不同,它实际上是使用整个区域,所以问题只是Panel中的SplitterWindow,而不是BoxSizer。

关于它为什么不起作用的任何想法?谢谢!

1 个答案:

答案 0 :(得分:4)

Panel可能正在扩展,但Panel中的ScrolledWindow不是,因为你没有在面板上使用sizer,只有框架。

您也可以尝试让SplitterWindow成为框架的子项,而不使用面板。