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')
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()