Fare in modo che un widget appaia richiede di posizionarlo utilizzando ciò che Tkinter chiama "gestori geometria". I tre gestori sono grid, pack e place. Ognuno ha punti di forza e di debolezza. Questi tre gestori sono implementati come metodi su tutti i widget.
griglia, come suggerisce il nome, è perfetto per la posa di widget in una griglia. È possibile specificare righe e colonne, righe e colonne campate, imbottiture, ecc
Esempio:
b = Button(...)
b.grid(row=2, column=3, columnspan=2)
pacchetto utilizza una metafora di dialogo, che ti permette di widget "Pack" lungo uno dei lati di un contenitore. pack è estremamente buono a tutti i layout verticali o orizzontali. Le barre degli strumenti, ad esempio, dove i widget sono allineati in una linea orizzontale, sono un buon posto per usare il pacchetto.
Esempio:
b = Button(...)
b.pack(side="top", fill='both', expand=True, padx=4, pady=4)`
posto è il meno responsabile geometria utilizzata. Con il luogo si specifica la posizione esatta x/y e la larghezza/altezza esatta per un widget. Ha alcune caratteristiche interessanti come la possibilità di utilizzare le coordinate assolute o relative (ad esempio: puoi posizionare un widget a 10,10 o al 50% della larghezza o altezza del widget).
differenza grid
e pack
, utilizzando place
non causa il widget genitore per espandere o comprimere per adattarsi tutti i widget che sono stati posti al suo interno.
Esempio:
b = Button(...)
b.place(relx=.5, rely=.5, anchor="c")
Con questi tre dirigenti della geometria si può fare praticamente qualsiasi tipo di layout che si possa immaginare.
Consiglio di non preferire l'uno sull'altro: impara i punti di forza di ciascuno e usa lo strumento giusto per il lavoro. Pack è straordinariamente potente e facile per una certa classe di problemi di layout, così come la griglia. Ognuno di loro può risolvere più facilmente alcuni problemi rispetto all'altro. –