2013-01-06 16 views
1

我試圖建立這樣的事情:enter image description herewxPython:如何使用其中一個wx.sizer類來指定特定列的寬度?

但是,我有一堆麻煩找出來。我製作了這個通用函數來包裝wx.gridsizer中的對象列表,然後將其添加到wx.StaticBoxSizer以獲得圍繞所有內容的邊框。然後它返回到主要的staticBox sizer被添加到主要的垂直boxsizer。

def buildHorizontalSizer(self, objects, label=None): 
    if label: 
     box = wx.StaticBox(self.panel, -1, label) 
     # for i in dir(box): 
     # print i 
     sizer = wx.StaticBoxSizer(box, wx.HORIZONTAL) 
    else: 
     sizer = wx.BoxSizer(wx.HORIZONTAL) 

    grid = wx.GridBagSizer(hgap=3, vgap=0) 
    for i in range(len(objects)): 
     if i==0: 
      grid.Add(objects[i], flag=wx.ALIGN_RIGHT) 
     else: 
      grid.Add(objects[i], flag=wx.ALIGN_LEFT) 
    sizer.Add(grid) 
    return sizer 

在每個字段中,從左到右依次爲StaticText,TextCtrl和Button。

如何配置單元以使它們具有不同的寬度?

回答

0

使用

objects[i].SetMinSize((width,height)) 

應該做你想要什麼......您可能需要將其添加到分級機前也呼籲

objects[i].SetSize((width,height)) 

相關問題