ventanas tutorial toplevel interfaz instalar grafica examples botones python user-interface tkinter

tutorial - Método de comando de cambio para el botón Tkinter en Python



tkinter tutorial (2)

Creo un nuevo objeto Button pero no especifiqué la opción de command luego de la creación. ¿Hay alguna forma en Tkinter para cambiar la función de comando (onclick) una vez que se ha creado el objeto?


Por supuesto; simplemente use el método bind para especificar la devolución de llamada después de que se haya creado el botón. Acabo de escribir y probar el ejemplo a continuación. Puede encontrar un buen tutorial sobre cómo hacer esto en http://www.pythonware.com/library/tkinter/introduction/events-and-bindings.htm

from Tkinter import Tk, Button root = Tk() button = Button(root, text="Click Me!") button.pack() def callback(event): print "Hello World!" button.bind("<Button-1>", callback) root.mainloop()


Aunque el programa de Eli Courtwright funcionará bien, lo que realmente pareces querer es solo una forma de reconfigurar después de la instanciación cualquier atributo que pudieras haber establecido al crear instancias². Cómo lo haces es a través del método configure ().

from Tkinter import Tk, Button def goodbye_world(): print "Goodbye World!/nWait, I changed my mind!" button.configure(text = "Hello World!", command=hello_world) def hello_world(): print "Hello World!/nWait, I changed my mind!" button.configure(text = "Goodbye World!", command=goodbye_world) root = Tk() button = Button(root, text="Hello World!", command=hello_world) button.pack() root.mainloop()

¹ "bien" si solo usas el mouse; Si le interesa tabular y usar [Espacio] o [Entrar] en los botones, tendrá que implementar (duplicar el código existente) eventos de pulsación de tecla también. Establecer la opción de command través de .configure es mucho más fácil.

² el único atributo que no puede cambiar después de la instanciación es el name .