Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
wxpython:嵌套的尺寸标注器和左上角的小正方形?_Wxpython_Sizer - Fatal编程技术网

wxpython:嵌套的尺寸标注器和左上角的小正方形?

wxpython:嵌套的尺寸标注器和左上角的小正方形?,wxpython,sizer,Wxpython,Sizer,我试图研究wxPython和sizers,并将以下示例放在一起: 导入wx 类MyTestFrame(wx.Frame): 定义初始(自我、父母、头衔): super(MyTestFrame,self)。\uuuuu init\uuuuuuu(父级,title=title, 大小=(250150)) #框架的主面板-“添加一个面板,使其在所有平台上看起来都正确” self.panel=wx.panel(self,wx.ID\u ANY) #self.panel.setbackgroundColo

我试图研究wxPython和sizers,并将以下示例放在一起:

导入wx
类MyTestFrame(wx.Frame):
定义初始(自我、父母、头衔):
super(MyTestFrame,self)。\uuuuu init\uuuuuuu(父级,title=title,
大小=(250150))
#框架的主面板-“添加一个面板,使其在所有平台上看起来都正确”
self.panel=wx.panel(self,wx.ID\u ANY)
#self.panel.setbackgroundColor(wx.color(124、224、124))#确认正方形为面板
#要绝对定位这些按钮吗
按钮(self,id=1,label='A',pos=(10,10),size=(30,30))
btn_A.立根颜色(wx.颜色(224、124、124))
按钮(self,id=2,label='B',pos=(45,10),size=(30,30))
按钮(self,id=3,label='C',pos=(80,10),size=(30,30))
#附加对象
mastersizer=wx.BoxSizer(wx.VERTICAL)
btnsizer=wx.BoxSizer(wx.HORIZONTAL)
添加(btn_A,0)
添加(btn_B,0)
添加(btn_C,0)
mastersizer.Add(btnsizer,1,wx.EXPAND)
自动面板设置器(主施胶器)
#~mastersizer.Fit(self)#使窗口与按钮一样大
自我中心()
self.Show()
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
app=wx.app()
MyTestFrame(无,“测试”)
app.MainLoop()
当我运行此操作时,我会看到一个窗口,如图所示:

有人能解释一下,为什么我会在左上角得到那个灰色的小正方形?实现代码的正确方法是什么?(按钮故意上色,所以很明显…)我在Ubuntu Lucid上,以防这是特定于平台的


编辑:那个正方形显然是面板本身,但我不知道为什么它不按预期调整大小并成为按钮的“父级”?

啊,不是那么糟糕;但是对我来说不是很明显:)所以这里有一些对像我这样的其他noob的参考:在上面的代码中,按钮被定义为框架的子项,而不是面板的子项;因此,唯一的变化是:

    # want these buttons absolutely positioned
    # must be children of panel - if panel is to encompass them! 
    btn_A = wx.Button(self.panel, id=1, label='A', pos=(10, 10), size=(30, 30))
    btn_A.SetBackgroundColour(wx.Colour(224, 124, 124))
    btn_B = wx.Button(self.panel, id=2, label='B', pos=(45, 10), size=(30, 30))
    btn_C = wx.Button(self.panel, id=3, label='C', pos=(80, 10), size=(30, 30))
然后一切似乎都很好:

嗯,很抱歉在这里浪费了空间,但希望对其他人有用:)

干杯