Tkinter es un paquete de Python para crear aplicaciones GUI. Python tiene muchos marcos de GUI, pero Tkinter es el único marco integrado en la biblioteca estándar de Python. Tkinter tiene varios puntos fuertes; es multiplataforma, por lo que el mismo código funciona en Windows, macOS y Linux. Tkinter es liviano y relativamente fácil de usar en comparación con otros marcos.
En este artículo, vamos a aprender cómo podemos cambiar el estado de un Botón.
Entendamos esto con paso a paso:
Paso 1: Primero vamos a importar el módulo Tkinter y algunos widgets que necesitamos.
Python3
# importing tkinter module # along with some constants and Widgets from tkinter import Tk from tkinter.constants import DISABLED, NORMAL from tkinter.ttk import Button, Label
Si está utilizando Python2 , cambie tkinter a Tkinter y tkinter.ttk tampoco funcionará, así que importe widgets desde Tkinter.
Paso 2: ahora vamos a crear una clase de aplicación que contendrá todos los botones y etiquetas.
Python3
# Creating App class which # will contain our overall App class App: def __init__(self, master) -> None: # Instantiating master i.e toplevel Widget self.master = master # Creating label self.label = Label(self.master, text = "Click Button2 to change Button1 State") self.label.pack(pady = 10) # Creating button1 # We will change the state of this Button # it has a initial state of "NORMAL" # i.e Button can be pressed self.button1 = Button(self.master, text = "Button1", state = NORMAL) self.button1.pack(pady = 20) # Creating another button # We will use this button to # change the State of first button self.button2 = Button(self.master, text = "Button2", command = self.changeState) self.button2.pack(pady = 20)
Paso 3: Como puede ver en el código anterior, tenemos una función adjunta con Button2, es decir , la función changeState . A continuación, implementaremos esta función. En esta función, cambiaremos el Estado del Botón1.
Python3
# Helper function which will change the State of Button1 def changeState(self) -> None: # Printing the State of # the Button before ALTERING it # This is optional print(self.button1['state']) # Checking if the STATE of the Button1 # If the STATE is NORMAL if (self.button1['state'] == NORMAL): # Change the state to DISABLED self.button1['state'] = DISABLED else: # Otherwise, change the state to NORMAL self.button1['state'] = NORMAL
Paso 4: En este paso, crearemos la función principal que ejecutará esta aplicación. En la función principal, estableceremos el título y la geometría de la aplicación e instanciaremos nuestra clase de aplicación.
Python3
if __name__ == "__main__": # Instantiating top level root = Tk() # Setting the title of the window root.title("Button State App") # Setting the geometry i.e Dimensions root.geometry("400x250") # Calling our App app = App(root) # Mainloop which will cause # this toplevel to run infinitely root.mainloop()
A continuación se muestra la implementación completa:
Python3
# importing tkinter module # along with some constants and Widgets from tkinter import Tk from tkinter.constants import DISABLED, NORMAL from tkinter.ttk import Button, Label # Creating App class # which will contain our overall App class App: def __init__(self, master) -> None: # Instantiating master # i.e toplevel Widget self.master = master # Creating label self.label = Label(self.master, text="Click Button2 to change Button1 State") self.label.pack(pady = 10) # Creating button1 # We will change the state of this Button # it has a initial state of # "NORMAL" i.e Button can be pressed self.button1 = Button(self.master, text = "Button1", state = NORMAL) self.button1.pack(pady = 20) # Creating another button # We will use this button # to change the State of first button self.button2 = Button(self.master, text = "Button2", command = self.changeState) self.button2.pack(pady = 20) # Helper function which will # change the State of Button1 def changeState(self) -> None: # Printing the State of # the Button before ALTERING it # This is optional print(self.button1['state']) # Checking if the STATE of the Button1 # If the STATE is NORMAL if (self.button1['state'] == NORMAL): # Change the state to DISABLED self.button1['state'] = DISABLED else: # Otherwise, change the state to NORMAL self.button1['state'] = NORMAL if __name__ == "__main__": # Instantiating top level root = Tk() # Setting the title of the window root.title("Button State App") # Setting the geometry i.e Dimensions root.geometry("400x250") # Calling our App app = App(root) # Mainloop which will cause this toplevel # to run infinitely root.mainloop()
Producción:
Publicación traducida automáticamente
Artículo escrito por sanjeev2552 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA