以下是我的GUI的总体布局:
||Title||||||||||||||||||x|
| |words|
| |blah |
| . . . . | |
| | |
| . | |
| |bttn |
|||||||||||||||||||||||||||
基本上,有两个大窗格,左边根据窗口的大小调整大小,右边保持不变。我想在右侧面板中放置一些交互式小部件,例如复选框,单选按钮等,但我想放入的内容可能大于整个应用程序的大小。如果我想让这个面板在wxPython中滚动(或者等效地,wxWidgets),我该怎么做呢?这是我的猜测:
class MyGUI(wx.Frame):
def __init__(self)
wx.Frame(None, -1)
main_panel = wx.Panel(self,-1)
main_sizer = wx.BoxSizer(wx.HORIZONTAL)
main_panel.SetSizer(main_sizer)
left_panel = wx.Panel(main_panel,-1)
main_sizer.Add(left_panel, 1, wx.EXPAND)
right_panel = wx.Panel(main_panel,-1)
right_sizer = wx.BoxSizer(wx.VERTICAL)
right_panel.SetSizer(right_sizer)
main_sizer.Add(right_panel, 0, wx.EXPAND)
for i in range(100):
right_sizer.Add(wx.CheckBox(right_panel, -1, "Happy Box"), 0, wx.EXPAND)
right_sizer.Add(wx.Button(right_panel, -1, "Grow!"),1, wx.EXPAND)
right_panel.Fit()
main_panel.Fit()
self.Layout()
self.Maximise()
self.Show()
现在我知道wxPython碰巧有一个叫做ScrolledPanel的漂亮的小面板,但由于某种原因,它似乎并没有真正意识到右侧面板有多大;也就是说,如果我调整GUI的大小,滚动条不能自我纠正。事实上,他们一开始并不是正确的。我怎么理智地去做这个?
答案 0 :(得分:1)
wxScrolledWindow可能就是你要找的东西。我有很多问题,wxWidgets和小部件动态地改变了大小,但你想要做的可能是调整wxScrolledWindow中的小部件,然后在滚动的窗口上调用FitInside()。