Desidero aggiungere 10 pulsanti a Tkinter, denominati da uno a dieci. Fondamentalmente ho usato il metodo della forza bruta, aggiungendo ogni pulsante mentre procedevo, nella funzione init della classe della mia applicazione. Funziona, ma voglio minimizzare il codice utilizzato, per essere più efficiente, come usare una struttura dati per contenere tutti i pulsanti.Come posso aggiungere un sacco di pulsanti al frame tkinter in modo efficiente?
Stavo pensando di utilizzare uno buttonBox
per contenere tutti i pulsanti, ma non ero sicuro di poter manipolare il posizionamento tramite grid()
per posizionare i pulsanti come volevo.
self.one = Button(frame, text="One", command=self.callback)
self.one.grid(sticky=W+E+N+S, padx=1, pady=1)
self.two = Button(frame, text="Two", command=self.callback)
self.two.grid(sticky=W+E+N+S, row=0, column=1, padx=1, pady=1)
self.three = Button(frame, text="Three", command=self.callback)
self.three.grid(sticky=W+E+N+S, row=0, column=2, padx=1, pady=1)
# ...
self.ten = Button(frame, text="Ten", command=self.callback)
self.ten.grid(sticky=W+E+N+S, row=1, column=4, padx=1, pady=1)
Qualcuno può mostrarmi un modo per renderlo più efficiente, ad esempio una struttura dati?
Grazie! Questo ha funzionato, ma ho dovuto cambiarlo in "self.button.append()" in modo che non causasse un IndexError. E la linea di fondo ho cambiato in self.button [i] .grid(), invece di self.one.grid(). Ha funzionato perfettamente :) – thatbennyguy
@thatbennyguy: Ack! Grazie per le correzioni! – unutbu
Solo una cosa ... come otterresti i pulsanti per richiamare comandi diversi? – thatbennyguy