2014-01-05 30 views
0

我有包含在頂層筆記本一個面板的框架,用含有不同窗格每一頁:如何尺寸的WX面板以適合wx.Notebook(wxPython的)

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

嘗試用SetSizer()更換SetSizerAndFit() –

回答

1

我不是你有什麼問題不太清楚,但我想你想要做的是電話:

Frame.SetSize((height, width)) 

其中高度和寬度都是整數。您也可以嘗試使用:

something.GetBestSize() 

這將返回最適合某些小部件的整數元組。

另外我儘量避免調用SetSizerAndFit(sizer)。無論我想要調整大小,我通常都會調用SetSizer(sizer)和Layout()。事實上,我不記得上次我調用Fit(),因爲如果在一個Frame中有多個面板,它可能會搞亂佈局。

+0

感謝堆。我會盡快嘗試並報告。 – GreenAsJade

+0

對不起,我對問題的解釋並不好。你(和Mike)給我的提示提供了一種解決方法(IE不要試圖做出最適合的:)),但還沒有解決方案。我會盡力將問題更新得更清楚。 – GreenAsJade