我正在尝试使用wxSizer在面板中排列小部件。我可以看到小部件被安排但是它们没有进入框架内部。谁能告诉我我做错了什么?
import wx
class MyRegion(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, -1)
self.panel = wx.Panel(self,-1,pos=(70,200), size=(300,300))
self.panel.SetBackgroundColour((128,128,128)) # dark grey
sizer = wx.BoxSizer(wx.VERTICAL)
b1 = wx.Button(self, label="TEXT1")
b2 = wx.Button(self, label="TEXT2")
b3 = wx.Button(self, label="TEXT3")
sizer.Add(b1)
sizer.Add(b2)
sizer.Add(b3)
self.panel.SetSizer(sizer)
sizer.Fit(self.panel)
if __name__ == "__main__":
app = wx.PySimpleApp()
myRegion = MyRegion()
myRegion.Show()
app.MainLoop()
答案 0 :(得分:1)
您应该将面板设为按钮的父级而不是框架。
b1 = wx.Button(self.panel, label="TEXT1")
原因是虽然sizer控制项目的定位,但UI中的父/子关系仍然由直接映射到底层OS控件的wx对象控制。