2015-03-08 63 views
0

我有一個Notebook併爲其添加兩個面板。當我嘗試獲得其中一個面板的可用區域時,它會返回(20,20) - 我想這是在放入東西之前它的大小。我想在放入東西之前得到這個大小,因爲一些比例取決於對此,我寧願不使用絕對值。wxPython - GetSize不返回實際大小

我還沒有設置實際大小,我只是用boxsizer設置大小並設置比例。我想獲得分配給面板的區域的實際像素寬度(它不佔用整個程序窗口區域)。我已經嘗試GetSize之前調用佈局,我已經嘗試GetVirtualSize和獲取ClientSize和任何其他可用大小返回,仍然(20,20)或有時(10,40)。我已經嘗試獲得父母的大小,沒有去。我得到祖父母大小,它顯示正確,但這是整個程序窗口的大小。有沒有辦法獲得面板的潛在可用區域?如果需要,我可以發佈佈局,但時間很長。

回答

1

這聽起來像是在創建窗口時,在初始佈局和大小調整完成之前嘗試執行此操作,因此所有內容仍具有其初始大小。有一些替代方法來處理這種情況。您可以延遲創建面板的內容,直到第一個尺寸的事件。或者你可以設計你的sizer佈局,以適應任何(合理)的尺寸。或者如果需要,您可以稍後調整/重做sizer佈局。

或者最簡單的方法是將假大小的事件發送給父級或頂級父級,這樣他們將執行調整子級窗口大小的正常佈局,這將級聯到您的面板。這可能不適用於所有情況,但有一個窗口方法很常見,SendSizeEvent

相關問題