我想要创建一个布局,其中一个wxPanel占用2/3s的窗口,另一个占用1/3的窗口。我知道如何使他们50/50,或如何指定最小和最大的大小。但是,是否有一种方法来具体说明可利用空间的比例?
import wx
eng = wx.App()
frame = wx.Frame(parent=None, title='wxPython')
main_panel = wx.Panel(frame)
main_panel.SetBackgroundColour(wx.Colour(255,0,0))
main_sizer = wx.BoxSizer(wx.HORIZONTAL)
main_panel.SetSizer(main_sizer)
left_panel = wx.Panel(main_panel)
left_panel.SetBackgroundColour(wx.Colour(0,255,0))
main_sizer.Add(left_panel, 1, wx.ALL | wx.EXPAND, 0)
right_panel = wx.Panel(main_panel)
right_panel.SetBackgroundColour(wx.Colour(0,0,255))
main_sizer.Add(right_panel, 1, wx.ALL | wx.EXPAND, 0)
frame.Show()
frame.CenterOnScreen()
eng.MainLoop()发布于 2021-04-22 08:59:24
proportion参数到sizer将为您控制这一点。
将proportion值更改为一个sizer条目为2,它将使sizer为该条目分配两倍的空间。
这个比例定义了测试者的孩子之间的关系有多大。在垂直测量器中,这会改变高度;在水平测量器中,这会改变宽度。

在这里,右边的小组已经被修改了。
import wx
eng = wx.App()
frame = wx.Frame(parent=None, title='wxPython')
main_panel = wx.Panel(frame)
main_panel.SetBackgroundColour(wx.Colour(255,0,0))
main_sizer = wx.BoxSizer(wx.HORIZONTAL)
main_panel.SetSizer(main_sizer)
left_panel = wx.Panel(main_panel)
left_panel.SetBackgroundColour(wx.Colour(0,255,0))
main_sizer.Add(left_panel, 1, wx.ALL | wx.EXPAND, 0)
right_panel = wx.Panel(main_panel)
right_panel.SetBackgroundColour(wx.Colour(0,0,255))
main_sizer.Add(right_panel, 2, wx.ALL | wx.EXPAND, 0)
frame.Show()
frame.CenterOnScreen()
eng.MainLoop()https://stackoverflow.com/questions/67209281
复制相似问题