【问题标题】:wxPython SplitterWindow does not expand within a PanelwxPython SplitterWindow 不在面板内展开
【发布时间】:2010-11-06 03:37:45
【问题描述】:

我正在尝试一个简单的布局,由 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内。

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

【问题讨论】:

    标签: python user-interface wxpython panel


    【解决方案1】:

    面板可能正在扩展,但面板中的 ScrolledWindow 没有,因为您没有为面板使用大小调整器,仅使用框架。

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

    【讨论】:

    • 谢谢,我为面板添加了第二个sizer,并在其中添加了拆分器,它可以工作......但我完全不明白为什么它不需要sizer就可以在 Frame 中工作: -s
    • 如果一个框架只有一个孩子,它将调整它的大小以填充 EVT_SIZE 回调中的框架。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-24
    • 1970-01-01
    相关资源
    最近更新 更多