2013-08-22 2 views
0

저는이 문제를 혼자서 해결할 수 없습니다.wxpython 패널의 크기가 조정되지 않습니다.

wxPython 프레임에 3 개의 위젯이 있습니다. 두 개는 가로로 쌓여 있고 한 개는 그 아래에 쌓여 있습니다. 코드는 다음과 같습니다.

import wx 
class MyFrame(wx.Frame): 
    def __init__(self, parent, id=wx.ID_ANY, title="", pos=wx.DefaultPosition, size=wx.DefaultSize, style=wx.DEFAULT_FRAME_STYLE, name="MyFrame"): 

     super(MyFrame, self).__init__(parent, id, title, pos, size, style, name) 

     panel1 = wx.Panel(self, -1) 

     boxV = wx.BoxSizer(wx.VERTICAL) 
     boxH1 = wx.BoxSizer(wx.HORIZONTAL) 
     boxH2 = wx.BoxSizer(wx.HORIZONTAL) 

     combo = wx.ComboBox(panel1, -1, size=(200, -1), choices=['A', 'B', 'C'], style=wx.CB_READONLY, value="Izberite COM vrata") 
     button = wx.Button(panel1, -1, size=(100, -1), label="Connect") 

     boxH1.Add(combo, 1, wx.ALL, 10); 
     boxH1.Add(button, 1, wx.ALL, 10) 

     boxH2.Add(wx.TextCtrl(self, -1), 1, wx.EXPAND) 

     boxV.Add(boxH1, 0) 
     boxV.Add(boxH2, 1, wx.EXPAND) 

     panel1.SetSizer(boxH1); 

     self.SetSizer(boxV); 

class MyApp(wx.App): 
    def OnInit(self): 
     self.frame = MyFrame(None, title="Simulation") 

     self.SetTopWindow(self.frame) 
     self.frame.Show() 
     return True 

if __name__ == '__main__': 
    app = MyApp(0) 
    app.MainLoop() 

이 기능이 작동합니다. 그리고 그것은 ... 일종의 ... 수동으로 패널의 크기를 설정하면 확장되고 괜찮아 보입니다. 그러나 그것은 automaticaly 확장해야합니다. 내가 무슨 말을하고 무엇을 볼 수있는 스크린 샷을 만들었습니다 :

enter image description here

답변

0

당신은이 3 선을 변경할 수 있습니다 :

boxV.Add(boxH1, 0, wx.EXPAND) 
    boxV.Add(boxH2, 1, wx.EXPAND) 

    panel1.SetSizerAndFit(boxH1); 

자체로 치수를 패널 그림을 보자 SetSizerAndFit.

+0

나는 지금 매우 어리 석다. 고맙습니다. –

+0

여러분을 환영합니다! – darmat

관련 문제