Estuvimos indagando por todo el mundo online para darte la solución a tu problema, si continúas con alguna duda puedes dejarnos tu pregunta y contestamos con mucho gusto.
Solución:
from tkinter import Tk, font
root = Tk()
font.families()
Esta pregunta ha sido respondida completamente, pero es útil para mí poder ver cómo se ve cada fuente para estar seguro de cuál me gustaría usar. En aras de salvar a alguien más de reinventar la rueda, publicaré mi código aquí. Como arriba, cada familia de fuentes se muestra en una ventana de desplazamiento. La diferencia es que cada fuente en este código está impresa en la propia fuente.
from tkinter import *
from tkinter import font
root = Tk()
root.title('Font Families')
fonts=list(font.families())
fonts.sort()
def populate(frame):
'''Put in the fonts'''
listnumber = 1
for item in fonts:
label = "listlabel" + str(listnumber)
label = Label(frame,text=item,font=(item, 16)).pack()
listnumber += 1
def onFrameConfigure(canvas):
'''Reset the scroll region to encompass the inner frame'''
canvas.configure(scrollregion=canvas.bbox("all"))
canvas = Canvas(root, borderwidth=0, background="#ffffff")
frame = Frame(canvas, background="#ffffff")
vsb = Scrollbar(root, orient="vertical", command=canvas.yview)
canvas.configure(yscrollcommand=vsb.set)
vsb.pack(side="right", fill="y")
canvas.pack(side="left", fill="both", expand=True)
canvas.create_window((4,4), window=frame, anchor="nw")
frame.bind("", lambda event, canvas=canvas: onFrameConfigure(canvas))
populate(frame)
root.mainloop()
Espero que esto ayude a alguien.
Hay dos fuentes de fuentes disponibles en las que puedo pensar:
- Familias de fuentes y
- Fuentes con nombre.
import sys if sys.version_info.major == 3: import tkinter as tk, tkinter.font as tk_font else: import Tkinter as tk, tkFont as tk_font root = tk.Tk() print(tk_font.families()) print(tk_font.names())
Todas las familias de fuentes predefinidas disponibles (como ‘Courier’, ‘Helvetica’ y muchas otras) deben encontrarse en la tkFont.families()
llamar.
Las fuentes con nombre son un poco diferentes. Cada vez que crea una nueva instancia de fuente con tkFont.Font(...)
, está creando una fuente con nombre y obtiene el nombre de la nueva instancia de fuente. Ese nombre aparecerá en el tkFont.names()
lista. Esa lista viene precargada con todas las fuentes nombradas que se usan como predeterminadas para diferentes widgets. Si ve un identificador de fuente que no reconoce, como ‘font1234567’ o ‘TkFixedFont’, probablemente sea el nombre de una fuente con nombre, a la que puede acceder y usar fácilmente a través de font = tkFont.Font(name=
.
Calificaciones y reseñas
Recuerda que puedes difundir esta crónica si te ayudó.