2011-11-20 4 views
2

저는 wxPython을 시작했습니다.wxPython에서 패널 겹침을 방지 하시겠습니까?

overlap

가 어떻게이 중복을 방지 할 수 있습니다 :이 같은 정말 작은 보이는되도록 내가 창 크기를 조정하면

import wx 

class SASFrame(wx.Frame): 
    def __init__(self,parent,id,title): 

     wx.Frame.__init__(self,parent,id,title) 
     groupPanel = wx.Panel(self) 

     st = wx.StaticText(groupPanel, -1, "Which characteristics would you like to group by?") 

     cbAge = wx.CheckBox(groupPanel, -1, "Age") 
     cbMarket = wx.CheckBox(groupPanel,-1, "Market") 

     groupSizer = wx.BoxSizer(wx.VERTICAL) 
     groupSizer.AddMany([st,cbAge, cbMarket]) 
     groupPanel.SetSizer(groupSizer) 

     summaryPanel = wx.Panel(self) 

     st2 = wx.StaticText(summaryPanel, -1, "What would you like to summarize?") 
     cbPremiums = wx.CheckBox(summaryPanel,-1, "Premiums") 
     cbClaims = wx.CheckBox(summaryPanel,-1, "Claims") 

     summarySizer = wx.BoxSizer(wx.VERTICAL) 
     summarySizer.AddMany([st2,cbPremiums,cbClaims]) 
     summaryPanel.SetSizer(summarySizer) 

     frameSizer = wx.BoxSizer(wx.VERTICAL) 
     frameSizer.Add(groupPanel,1,wx.EXPAND) 
     frameSizer.Add(summaryPanel,1,wx.EXPAND) 

     self.SetSizer(frameSizer) 

class SASApp(wx.App): 
    def __init__(self): 
     wx.App.__init__(self) 
    def OnInit(self): 
     self.frame = SASFrame(parent=None,id=-1,title="HCRFM Custom Report Generator") 
     self.frame.Show() 
     self.SetTopWindow(self.frame) 
     return True 

def main(): 
    app = SASApp() 
    app.MainLoop() 

if __name__ == '__main__': 
    main() 

: 나는 다음과 같은 코드가? 또한 사용자가 텍스트를 가로로자를만큼 작게 만들 수 없도록하려면 어떻게해야합니까? 후자에 대해 걱정해야하는지 잘 모르겠습니다.

답변

2

그냥이에 줄을 편집 : 당신이 예상하는대로 정확히 작동 할 것입니다

self.SetSizerAndFit(frameSizer) 

. 그것은 당신의 위젯을 최소 크기의 윈도우로 레이아웃합니다 (당신이 필요하다면 테두리 나 스페이스를 추가하십시오). 그리고 그것보다 더 작은 윈도우를 허용하지 않을 것입니다. 추가 정보는 wx docs : http://www.wxpython.org/docs/api/wx.Window-class.html#SetSizerAndFit

1

내가하는 일은 원하지 않는 위젯 숨기기를 방지하는 창의 최소 크기를 결정하고 수정하는 것입니다. 나는 wx.Window method을 사용

SetMinSize((x,y)) 

wx.Window 다른 alternative method 있습니다

SetSizeHintsSz(self, minSize, maxSize=DefaultSize, incSize=DefaultSize) 

는 최소 및 최대 윈도우 크기 및 윈도우 크기 단위의 지정을 할 수 있습니다. 한 쌍의 값이 설정되지 않았거나 -1로 설정된 경우 기본값이 사용됩니다. 이 함수를 호출하면 은 지정된 경계 외부에서 창 크기를 조정할 수 없습니다 ( 최상위 창인 경우). Sizer는 최소 창 크기 을 검사하고 설정 한 경우 해당 값을 사용합니다. 레이아웃 계산.

크기 조정은 Motif 또는 Xt에서만 중요합니다.

관련 문제