wxPython的SplitterWindow在面板内无法扩展

2 投票
1 回答
1827 浏览
提问于 2025-04-15 12:30

我在尝试做一个简单的布局,结果发现用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()

我把面板的颜色设置得不一样,实际上它是占用了整个区域,所以问题出在面板里的SplitterWindow,而不是BoxSizer里。

有没有人知道为什么它不工作呢?谢谢!

1 个回答

3

这个面板可能在扩展,但面板里的滚动窗口却没有扩展,因为你没有给面板使用布局管理器,只是给了框架使用。

你也可以试试把分割窗口直接放在框架里,不用面板。

撰写回答