¿Cómo cambiar dinámicamente el tamaño del texto del botón en Tkinter?

Requisito previo: Python GUI – tkinter , cambiar el tamaño de los botones dinámicamente al cambiar el tamaño de una ventana usando Tkinter

En este artículo, veremos cómo hacer que el tamaño del texto del botón sea dinámico. Dinámico significa que siempre que cambie el tamaño del botón, también cambiará el tamaño del texto del botón. En Tkinter no hay una función incorporada que cambie el tamaño del texto del botón de forma dinámica.

Acercarse:

  • Crear botón y establecer pegajoso en todas las direcciones
  • Establezca el enlace, lo que hará el enlace, cada vez que cambie el tamaño del botón, llamará a la función de cambio de tamaño que crearemos más adelante.
  • Dentro de la función de cambio de tamaño, tendremos una condición diferente, dependiendo de la geometría/tamaño de la ventana principal.
  • Establecer configuración de fila y columna

Entendamos con la implementación paso a paso:

Paso 1: crea una 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: crea un botón dentro de la ventana principal.

Python3

# Import module
from tkinter import *
 
# Create object
root = Tk()
 
# Adjust size
root.geometry("400x400")
 
# Create Buttons
button_1 = Button(root , text = "Button 1")
 
# Set grid
button_1.grid(row = 0,column = 0)
 
# Execute tkinter
root.mainloop()

Producción:

Paso 3: cambiar el tamaño del texto del botón

Dentro de la función de cambio de tamaño, el valor «e» indicará el ancho y el alto de la ventana principal.

Python3

# resize button text size
def resize(e):
     
    # get window width
    size = e.width/10
 
    # define text size on different condition
 
    # if window height is greater
    # than 300 and less than 400 (set font size 40)
    if e.height <= 400 and e.height > 300:
        button_1.config(font = ("Helvetica", 40))
 
    # if window height is greater than
    # 200 and less than 300 (set font size 30)
    elif e.height < 300 and e.height > 200:
        button_1.config(font = ("Helvetica", 30))
 
    # if window height is less than 200 (set font size 40)
    elif e.height < 200:
        button_1.config(font = ("Helvetica", 40))

A continuación se muestra la implementación completa:

Python3

# Import module
from tkinter import *
 
# Create object
root = Tk()
 
# Adjust size
root.geometry("400x400")
 
# Specify Grid
Grid.columnconfigure(root, index = 0,
                     weight = 1)
 
Grid.rowconfigure(root, 0,
                  weight = 1)
 
# Create Buttons
button_1 = Button(root, text = "Button 1")
 
# Set grid
button_1.grid(row = 0,
              column = 0, sticky = "NSEW")
 
# resize button text size
def resize(e):
     
    # get window width
    size = e.width/10
 
    # define text size on different condition
 
    # if window height is greater
    # than 300 and less than 400 (set font size 40)
    if e.height <= 400 and e.height > 300:
        button_1.config(font = ("Helvetica", 40))
 
    # if window height is greater than
    # 200 and less than 300 (set font size 30)
    elif e.height < 300 and e.height > 200:
        button_1.config(font = ("Helvetica", 30))
 
    # if window height is less
    # than 200 (set font size 40)
    elif e.height < 200:
        button_1.config(font = ("Helvetica", 40))
 
# it will call resize function
# when window size will change
root.bind('<Configure>', resize)
 
# 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 *