Requisito previo: GUI de Python – tkinter
El tamaño del botón es estático, lo que significa que el tamaño de un botón no se puede cambiar una vez que lo define el usuario. El problema aquí es que al cambiar el tamaño de la ventana, puede afectar el problema del tamaño del botón. Entonces, la solución aquí es crear un botón dinámico, lo que significa que el tamaño del botón cambiará según el tamaño de la ventana.
Entendamos con la implementación paso a paso:
Paso 1#: Crear ventana normal de Tkinter
Python3
# Import module from tkinter import * # Create object root = Tk() # Adjust size root.geometry("400x400") # Execute tkinter root.mainloop()
Producción:-
Paso 2 #: agregue botones y configure la cuadrícula.
Sintaxis:
Button(Object Name,text="Enter Text")
¿Qué es la cuadrícula?
El administrador de geometría grid() organiza los widgets en una estructura similar a una tabla en el widget principal. El widget maestro se divide en filas y columnas, y cada parte de la tabla puede contener un widget. Utiliza columna, intervalo de columna, ipadx, ipady, padx, pady, fila, intervalo de fila y sticky.
Sintaxis:
Object_name.grid(row=row value,column=column value,**attributes)
Python3
# Import module from tkinter import * # Create object root = Tk() # Adjust size root.geometry("500x500") # Create Buttons button_1 = Button(root,text="Button 1") button_2 = Button(root,text="Button 2") # Set grid button_1.grid(row=0,column=0) button_2.grid(row=1,column=0) # Execute tkinter root.mainloop()
Producción:
Paso 3#: Configure Columnconfigure y Rowconfigure para cambiar el tamaño.
Para que la interfaz de usuario cambie de tamaño, necesitaremos especificar un peso positivo para las columnas que nos gustaría expandir. Esto se hace usando los métodos Columnconfigure y Rowconfigure de la grilla. Este peso es relativo. Si dos columnas tienen el mismo peso, se expandirán al mismo ritmo.
Qué hacer si la celda es más grande que el widget. Por defecto, con sticky=”, el widget se centra en su celda. sticky puede ser la concatenación de strings de cero o más de N, E, S, W, NE, NW, SE y SW, las direcciones de la brújula que indican los lados y las esquinas de la celda a la que se adhiere el widget.
“NSEW” significa N+S+E+O
Código:-
Python3
# Import module from tkinter import * # Create object root = Tk() # Adjust size root.geometry("500x500") # Specify Grid Grid.rowconfigure(root,0,weight=1) Grid.columnconfigure(root,0,weight=1) Grid.rowconfigure(root,1,weight=1) # Create Buttons button_1 = Button(root,text="Button 1") button_2 = Button(root,text="Button 2") # Set grid button_1.grid(row=0,column=0,sticky="NSEW") button_2.grid(row=1,column=0,sticky="NSEW") # Execute tkinter root.mainloop()
Producción: