Estoy usando un gridbagsizer para colocar dos paneles dentro de un marco.Colocación de elementos (paneles) dentro de un 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)
Quiero que el panel de control esté sobre el panel principal (como se puede ver arriba). Sin embargo, esta es la salida me sale:
No sé por qué el panel superior es mucho más grande que el panel inferior, cuando he especificado lo contrario. (2, 5) para la parte superior y (5, 5) para la parte inferior. También tiene un comportamiento extraño cuando lo cambio de tamaño más pequeño, básicamente me da lo que quiero (ver imagen a continuación), pero no sé cómo mantener la proporción cuando lo hago más grande de nuevo.
Sin embargo cuando se inicia el cambio de tamaño más grande (incluso por una pequeña cantidad) se puede ver (debajo) de la formas y relación de cambio de forma espectacular en la otra dirección (con la parte inferior llegando a ser mucho más pequeño y la parte superior mucho más grande)
Aún tratando de aprender esta medidores y realmente no puede encontrar este problema con alguno de los ejemplos que he visto. También intenté experimentar con todos los parámetros y hacer algunas pruebas y no puedo entender qué está pasando aquí. Cualquier ayuda sería muy apreciada.
EDITAR: La imagen que se encuentra debajo agregaron para ayudar a los comentarios a continuación.
¿Puedo seguir usando SetMaxSize con esto?Quiero que el panel superior permanezca del mismo tamaño (en y, pero expandible a través de x) pero que el panel inferior se expanda (en x e y). – johnharris85
No estoy seguro ... es posible que pueda obtenerlo usando los clasificadores anidados para el panel superior, pero no sé. –