2014-04-30 1 views
1

저는 wxPython을 사용하여 GUI를 만듭니다. 현재 저는 도구 모음과 세 개의 패널을 가지고 있습니다. 버튼을 클릭하면 두 번째 패널에 그리드 표시가 나타납니다. 하나. 버튼을 클릭하면 작은 회색 사각형이 생깁니다. 여기 wxPython이 격자를 표시하지 않습니다.

버튼에 대한 코드입니다 :

self.Bind(wx.EVT_BUTTON, self.OnCo, id=self.submit.GetId()) 

을 여기에 버튼을 클릭은 "OnCo"이벤트에 대한 코드입니다 :

def OnCo(self, e): 

    #to get rid of stuff that was previously in the panel 
    for child in self.panel2.GetChildren(): 
     child.Destroy() 
    for child in self.panel3.GetChildren(): 
     child.Destroy() 

    mygrid = gridlib.Grid(self.panel2, -1) 
    mygrid.CreateGrid(500,7) 
    sizer = wx.BoxSizer(wx.VERTICAL) 
    sizer.Add(mygrid, -1, wx.EXPAND) 
    self.panel2.SetSizer(sizer) 
    mygrid.SetColLabelValue(0, 'S') 
    mygrid.SetColLabelValue(1, 'PB') 
    mygrid.SetColLabelValue(2, 'P') 
    mygrid.SetColLabelValue(3, 'T') 
    mygrid.SetColLabelValue(4, 'D') 

내가 얻을 수있는 방법에 어떤 도움 내 표를 보여줄까요? 감사.

답변

0

그리드의 크기가 올바르게 조정되지 않았을 수 있습니다. 아이템이있을 수 있지만 모든 것을 보여주지는 않습니다. 그리드의 값을 변경 한 후에는 항상 그 크기를 업데이트해야합니다.

def SetGridSize(self): self.mygrid.AutoSizeRows() self.mygrid.AutoSizeColumns() self.sizer.Fit(self)

을하고 나는 확실히 모든 것을 대신 끊어지고 화면에 표시 할 값을 변경할 때마다 다음() SetGridSize 전화 : 난 보통 그냥이 같은 클래스에 간단한 기능을 추가 할 수 있습니다.

물론 이름과 기타 등등을 약간 수정해야합니다. 이 구현은 클래스가 wx.Frame 객체라고 가정합니다.

관련 문제