Ho una piccola applicazione di prova Python mentre sto imparando sia Python che Tkinter e sto cercando di capire come ridimensionare uniformemente una griglia di etichette in una finestra. Mi piacerebbe creare una grande griglia di quadrati colorati differenti, quindi sto usando etichette con un set di colori di sfondo per creare i quadrati. Vorrei ridimensionare automaticamente i quadrati quando l'utente espande la finestra e poi ridimensionarli e ridimensionarli in modo che abbiano tutte le stesse dimensioni di quando la finestra viene ridotta di dimensioni.Python Tkinter - ridimensiona i widget in modo uniforme in una finestra
Qualcosa di simile a questo:
che ridimensiona e scale in modo uniforme in questo modo:
In altre parole: ogni etichetta dovrebbe tutta scala più uniforme la bilancia delle finestre. Non sono nemmeno sicuro se sto usando i termini corretti con "window" e "widget". Ma sto mettendo le etichette su una GUI.
Codice di prova che sto usando per cercare di arrivare a questo lavoro:
import Tkinter
class simpleapp_tk(Tkinter.Tk):
def __init__(self,parent):
Tkinter.Tk.__init__(self,parent)
self.parent = parent
self.initialize()
def initialize(self):
self.grid()
label = Tkinter.Label(self,anchor="center",bg="green")
label.grid(column=0,row=0,sticky='EW')
label2 = Tkinter.Label(self,anchor="center",bg="black")
label2.grid(column=1,row=0,sticky='EW')
label3 = Tkinter.Label(self,anchor="center",bg="red")
label3.grid(column=2,row=0,sticky='EW')
label4 = Tkinter.Label(self,anchor="center",bg="purple")
label4.grid(column=0,row=1,sticky='EW')
label5 = Tkinter.Label(self,anchor="center",bg="blue")
label5.grid(column=1,row=1,sticky='EW')
label6 = Tkinter.Label(self,anchor="center",bg="yellow")
label6.grid(column=2,row=1,sticky='EW')
self.grid_columnconfigure(0,weight=0)
if __name__ == "__main__":
app = simpleapp_tk(None)
app.title("Test App")
app.mainloop()
Impressionante! Grazie! Ho guardato ma non ho trovato un'impostazione "predefinita" per TUTTE le righe e le colonne. Sai se esiste o dovrò aggiungere "self.grid_columnconfigure (0, weight = 1)" e "self.grid_columnconfigure (1, weight = 1)" per tutte le colonne e tutte le righe separatamente? – user1340081
Dovrai farlo individualmente per ogni riga e colonna –
Impressionante. Grazie ancora! – user1340081