Utilizzo una griglia per posizionare due pannelli all'interno di una cornice.Inserimento di elementi (pannelli) all'interno di 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)
Voglio che il control_panel sia sopra il main_panel (come puoi vedere sopra). Tuttavia questo è l'uscita ottengo:
Non so il motivo per cui il pannello superiore è così molto più grande del pannello inferiore, quando ho specificato il contrario. (2, 5) per la parte superiore e (5, 5) per la parte inferiore. Ha anche uno strano comportamento quando lo ridimensiono più piccolo, in pratica mi dà quello che voglio (vedi immagine sotto), ma non so come mantenere il rapporto quando lo rendo più grande.
Tuttavia, quando si avvia il ridimensionamento più grande (anche da parte di una piccola quantità) è possibile vedere (sotto) la forma e rapporto di cambio drasticamente nella direzione opposta (con il fondo diventa molto più piccolo e la parte superiore molto più grande).
Ancora cercando di imparare questo sizers e non si può davvero trovare questo problema con uno degli esempi che ho visto. Ho anche provato a sperimentare tutti i parametri e fare alcuni test e non riesco a capire cosa sta succedendo qui. Qualsiasi aiuto sarebbe molto apprezzato.
MODIFICA: l'immagine qui sotto è stata aggiunta ai commenti degli aiuti di seguito.
Posso ancora utilizzare SetMaxSize con questo?Voglio che il pannello superiore rimanga della stessa dimensione (in y, ma espandibile tramite x) ma il pannello in basso da espandere (in xey). – johnharris85
Non sono sicuro ... potresti riuscire a farlo usando sizers annidati per il pannello superiore, ma non lo so. –