में तत्वों (पैनल) को रखकर मैं एक फ्रेम के भीतर दो पैनलों को रखने के लिए एक ग्रिडबैगज़र का उपयोग कर रहा हूं।एक wx.GridBagSizer
control_panel = wx.Panel(self, id=ID_CONTROL_PANEL)
main_panel = wx.Panel(self, id=ID_MAIN_PANEL)
frame_sizer = wx.GridBagSizer(1, 1)
frame_sizer.Add(control_panel, (0, 0), (2, 5), flag=wx.EXPAND)
frame_sizer.Add(main_panel, (2, 0), (5, 5), flag=wx.EXPAND)
frame_sizer.AddGrowableRow(0)
frame_sizer.AddGrowableCol(0)
self.SetSizer(frame_sizer)
मैं control_panel main_panel ऊपर हो (जैसा कि आप ऊपर देख सकते हैं) चाहता हूँ।
मैं नहीं जानता कि क्यों शीर्ष पैनल इतना नीचे पैनल से बड़ा है, जब मैं विपरीत निर्दिष्ट किया है: हालांकि इस उत्पादन मैं हो रही है। (2, 5) शीर्ष के लिए और (5, 5) नीचे के लिए। जब मैं इसे छोटा आकार देता हूं तो यह एक अजीब व्यवहार भी करता है, यह मूल रूप से मुझे जो चाहिए (नीचे छवि देखें) देता है, लेकिन मुझे नहीं पता कि जब मैं इसे फिर से बड़ा करता हूं तो अनुपात को कैसे बनाए रखा जाए।
लेकिन जब आप बड़े आकार बदलने (यहां तक कि एक छोटी राशि से) आप (नीचे) देख सकते हैं दूसरी दिशा में आकार और अनुपात परिवर्तन नाटकीय रूप से (नीचे बहुत छोटे और बहुत बड़ा शीर्ष बनने के साथ शुरू)।
अभी भी इस sizers जानने की कोशिश कर और वास्तव में उदाहरण मैंने देखा है में से किसी के साथ इस समस्या नहीं मिल रहा। सभी मानकों के साथ प्रयोग करने और कुछ परीक्षण करने का भी प्रयास किया और मैं यह नहीं समझ सकता कि यहां क्या हो रहा है। कोई भी सहायताकाफी प्रशंसनीय होगी।
संपादित करें: नीचे दी गई छवि सहायता के लिए नीचे दी गई छवि।
क्या मैं अभी भी इसके साथ SetMaxSize का उपयोग कर सकता हूं?मैं शीर्ष पैनल को एक ही आकार में रहने के लिए चाहता हूं (वाई में, लेकिन एक्स के माध्यम से विस्तार योग्य) लेकिन नीचे पैनल (एक्स और वाई में) विस्तार करने के लिए। – johnharris85
मुझे यकीन नहीं है ... आप इसे शीर्ष पैनल के लिए नेस्टेड साइज़र का उपयोग करने में सक्षम हो सकते हैं, लेकिन मुझे नहीं पता। –