Saltar al contenido

¿Cómo cambiar la fuente y el tamaño de los botones y el marco en tkinter usando python?

Este escrito ha sido analizado por nuestros expertos para garantizar la veracidad de nuestra esta reseña.

Solución:

ACTUALIZAR: El sitio web tkinter de New Mexico Tech se ha archivado en GitHub.

Primero, la mejor referencia para Tkinter es este sitio web de New Mexico Tech. En el toc encontrará una sección sobre fuentes, y en la sección sobre Widgets de botón encontrará la opción font.

debe tener un objeto Tkinter para crear una fuente

Python-2

El soporte para Python-2 finalizó oficialmente el 1 de enero de 2020

from Tkinter import *  # Note: UPPER case "T" in Tkinter
import tkFont
root = Tk()

Python-3

Los envoltorios Python-3 Tk difieren de Python-2

from tkinter import *  # Note: lower case "t" in tkinter
from tkinter import font as tkFont  # for convenience
root = Tk()

cree una fuente como el ejemplo del sitio web de New Mexico Tech

helv36 = tkFont.Font(family='Helvetica', size=36, weight='bold')
# you don't have to use Helvetica or bold, this is just an example

(Nota: recordar para Python-3 font fue importado como tkFont por conveniencia)

ahora puede configurar la fuente para button creado a partir de Button en la publicación original

button['font'] = helv36

El tamaño del botón dependerá de su administrador de geometría, EG: grid o pack. Solo el grid El método está cubierto en la sección de diseños del sitio de New Mexico Tech, pero effbot.org también es una gran referencia y cubre pack muy bien.

try:  # Python-2
    from Tkinter import *
    import tkFont
except ImportError:  # Python-3
    from tkinter import *
    from tkinter import font as tkFont
# using grid
# +------+-------------+
# | btn1 |    btn2     |
# +------+------+------+
# | btn3 | btn3 | btn4 |
# +-------------+------+
root = Tk()
# tkFont.BOLD == 'bold'
helv36 = tkFont.Font(family='Helvetica', size=36, weight=tkFont.BOLD)
btn1 = Button(text='btn1', font=helv36)
btn2 = Button(text='btn2', font=helv36)
btn3 = Button(text='btn3', font=helv36)
btn4 = Button(text='btn4', font=helv36)
btn5 = Button(text='btn5', font=helv36)
root.rowconfigure((0,1), weight=1)  # make buttons stretch when
root.columnconfigure((0,2), weight=1)  # when window is resized
btn1.grid(row=0, column=0, columnspan=1, sticky='EWNS')
btn2.grid(row=0, column=1, columnspan=2, sticky='EWNS')
btn3.grid(row=1, column=0, columnspan=1, sticky='EWNS')
btn4.grid(row=1, column=1, columnspan=1, sticky='EWNS')
btn5.grid(row=1, column=2, columnspan=1, sticky='EWNS')

Fuentes del botón Tkinter

Intenta también ttk.

El tutorial de tkdocs recomienda usar fuentes y estilos con nombre si desea modificar las apariencias:

import random
try:
    import tkinter as Tk
    import tkinter.ttk as ttk
    import tkinter.font as font
except ImportError: # Python 2
    import Tkinter as Tk
    import ttk
    import tkFont as font

def change_font_family(query, named_font):
    named_font.configure(family=random.choice(font.families()))

root = parent = Tk.Tk()
root.title("Change font demo")

# standard named font (everything that uses it will change)
font.nametofont('TkDefaultFont').configure(size=5) # tiny

# you can use your own font
MyFont = font.Font(weight='bold')

query = Tk.StringVar()
ttk.Entry(parent, textvariable=query, font=MyFont).grid() # set font directly
ttk.Button(parent, text='Change Font Family',  style='TButton', # or use style
           command=lambda: change_font_family(query, MyFont)).grid()
query.set("The quick brown fox...")

# change font that widgets with 'TButton' style use
root.after(3000, lambda: ttk.Style().configure('TButton', font=MyFont))
# change font size for everything that uses MyFont
root.after(5000, lambda: MyFont.configure(size=48)) # in 5 seconds
root.mainloop()

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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