Quiero agregar 10 botones a Tkinter, llamado One to Ten. Básicamente, simplemente usé el método de fuerza bruta, agregando cada botón a medida que avanzaba, en la función init de la clase de mi aplicación. Funciona, pero quiero minimizar el código utilizado, para ser más eficiente, como usar una estructura de datos para mantener todos los botones.¿Cómo puedo agregar muchos botones al marco tkinter de manera eficiente?
Estaba pensando en utilizar un buttonBox
para mantener pulsados todos los botones, pero no estaba seguro de poder manipular la ubicación mediante grid()
para colocar los botones como quería.
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)
¿Alguien me puede mostrar una forma de hacer esto más eficiente, como una estructura de datos?
¡Gracias! Esto funcionó, pero tuve que cambiarlo a "self.button.append()" por lo que no causó un IndexError. Y la línea de fondo cambió a self.button [i] .grid(), en lugar de self.one.grid(). Funcionó perfectamente :) – thatbennyguy
@thatbennyguy: ¡Ack! ¡Gracias por las correcciones! – unutbu
Solo una cosa ... ¿Cómo obtendrías los botones para devolver diferentes comandos? – thatbennyguy