2013-05-20 45 views
1

我注意到wxGlade(GUI構建器的wxPython)被強制分級機作爲wx.Frame的第一個子元素似乎很奇怪我,因爲幾乎所有的書和教程在那裏建議使用一個wx.Panel作爲第一個子元素。爲什麼wxGlade實施分級機作爲wx.Frame的第一個孩子?

所以,如果我想有一個wx.Panel爲基準,爲我的GUI(例如具有Windows上的一致的默認背景色)我必須去:的

wx.Frame -> Sizer (1,1) -> wx.Panel -> Sizer (x,x) -> Content 

代替

wx.Frame -> wx.Panel -> Content 

出於好奇,有人可以解釋這樣的設計決定給我嗎?

+0

對我來說,似乎只是一個蹩腳的設計師。實施這種限制是愚蠢的;他們可以在默認情況下添加它,但如果用戶想要提出「最佳做法」,則允許用戶將其刪除。 – Bakuriu

回答

1

據羅賓鄧恩的wxPython的創造者:

個人而言,我一直在做框架施膠機面板尺寸調整器最近因爲那時 frame.Fit()將讓篩分器,而不是計算所需的最小尺寸的 只是用面板的當前大小。但是,如果你不使用健身或 相似,只有一個孩子的框架則有可能 沒有任何其他原因需要的幀幀上分級機將 面板自動適配到框架的客戶區。 - https://groups.google.com/forum/#!searchin/wxpython-users/frame$20sizer$20panel/wxpython-users/nW5NivkfU7M/-1ISbrYvvjYJ

使用frame - > sizer - >面板的另一個便利原因是它使開關面板更容易,因爲您可以隱藏面板並顯示另一個面板。有關更多信息,請參閱此tutorial

相關問題