Cambiar el tamaño de los botones dinámicamente al cambiar el tamaño de una ventana usando Tkinter

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:

Agregar dos botones

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:

Publicación traducida automáticamente

Artículo escrito por abhigoya y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *