2014-01-05 7 views
0

구경 A wx.Notebook (wxPython을)를 맞게하는 WX 패널 :어떻게 각 페이지가 다른 창 포함하여, 최상위 레벨에 노트북을 포함하는 패널 프레임을

panel = wx.Panel(self) 
self._panel = panel 

# Arrange the various views in a notebook 

self._topNoteBook = wx.Notebook(panel) 

self._installsView = InstallsViewPane(self._topNoteBook) 
self._topNoteBook.AddPage(self._installsView, "Your CM Installations") 

self._H2HHViewNoteBook = wx.Notebook(self._topNoteBook) 
self._topNoteBook.AddPage(self._H2HHViewNoteBook, "Legacy H2HH View") 


# Do stuff to create the contents of installsView and H2HHViewNoteBook ... 
# [...] 

# Attempt to size the panel/topNoteBook so that 
# panel doesn't clip the contained notebook 
# Cause layout to happen 
sizer = wx.BoxSizer() 
self._sizer = sizer 
sizer.Add(self._topNoteBook, 1, wx.EXPAND) 
panel.SetSizerAndFit(sizer) 

의 각을 하위 창 자체가 제대로 크기가 있지만 메인 프레임/패널을 맨 위의 노트에 맞게 확장 할 수는 없습니다. 아니면 어쩌면 내 문제는 내가 최고 노트북을 아이들에게 맞게 확장시킬 수 없다는 것입니다. 실제로 문제가 무엇인지 알 수 없으며 그 효과는 동일합니다. 메인 프레임이 어린이 노트북에 비해 너무 작습니다.

결과는 자식 창은 잘 보이지만, 전체 프레임이 너무 작은 것입니다 :

enter image description here

도움말 : 그것은 어린이의 전체를보고 (어떤 작품)를 수동으로 확장되어야한다 ?

+1

SetSizerAndFit()을 SetSizer()로 바꾸어보십시오. –

답변

1

난 당신이 데있어 어떤 문제가 너무 명확하지 않다하지만 난 당신이 원하는 무엇을 생각하는 전화입니다 :

높이와 너비는 정수
Frame.SetSize((height, width)) 

. 또한 시도해 볼 수 있습니다 :

something.GetBestSize() 

이렇게하면 somethings 위젯에 가장 적합한 정수가 반환됩니다.

또한 SetSizerAndFit (sizer)를 호출하지 않도록합니다. 나는 일반적으로 SetSizer (sizer)와 Layout()을 크기에 관계없이 호출합니다. 사실 Frame (프레임)에 여러 개의 패널이있는 경우 레이아웃을 망칠 수 있기 때문에 Fit()이라고 부르는 마지막 시간을 기억할 수 없습니다.

+0

감사합니다. 나는 가능한 한 빨리 이것을 시도하고 다시보고 할 것입니다. – GreenAsJade

+0

죄송합니다. 문제에 대한 설명이 좋지 않았습니다. 당신 (그리고 마이크)이 나에게 준 힌트는 해결책을 제공한다. (IE는 최선의 선택을하려고하지 않는다. :)). 그러나 아직 해결책은 아니다. 질문을 명확하게 업데이트하려고 노력할 것입니다. – GreenAsJade