2012-07-04 7 views
0

Я пытаюсь использовать wxSizer для размещения виджетов внутри панели. Я вижу, что виджеты расположены, но они не попадают внутрь фрейма. Может ли кто-нибудь сказать мне, что я делаю неправильно?Как организовать wxWidgets внутри рамки с помощью wxBoxers?

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() 

ответ

1

Вы должны сделать панель родительскими кнопками вместо рамки.

b1 = wx.Button(self.panel, label="TEXT1") 

Причина этого заключается в том, что, хотя клеильные контролировать расположение элементов родитель/потомок в пользовательском интерфейсе по-прежнему контролируемых объектов WX, которые отображают непосредственно нижележащих элементов управления ОС.

+0

Конечно! Спасибо, tinman – Milad

 Смежные вопросы

  • Нет связанных вопросов^_^