This question has been answered fully, but it's useful for me to be able to see what every font looks like so that I'm sure of which one I would like to use. In the interest of saving someone else from reinventing the wheel, I'll post my code here. As above, each font family is shown in a scrolling window. The difference is that each font in this code is printed in the font itself.

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 i, item in enumerate(fonts):
        label = "listlabel" + str(listnumber)
        label = Label(frame,text=item,font=(item, 16))
        label.grid(row=i)
        label.bind("<Button-1>",lambda e,item=item:copy_to_clipboard(item))
        listnumber += 1

def copy_to_clipboard(item):
    root.clipboard_clear()
    root.clipboard_append("font=('" + item.lstrip('@') + "', 12)")

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("<Configure>", lambda event, canvas=canvas: onFrameConfigure(canvas))

populate(frame)

root.mainloop()

I hope this helps somebody.

Edit: Clicking on font name will copy it to clipboard ready for use in your tkinter script, per request from @idbrii .

Answer from jimmiesrustled on Stack Overflow
Top answer
1 of 12
84

This question has been answered fully, but it's useful for me to be able to see what every font looks like so that I'm sure of which one I would like to use. In the interest of saving someone else from reinventing the wheel, I'll post my code here. As above, each font family is shown in a scrolling window. The difference is that each font in this code is printed in the font itself.

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 i, item in enumerate(fonts):
        label = "listlabel" + str(listnumber)
        label = Label(frame,text=item,font=(item, 16))
        label.grid(row=i)
        label.bind("<Button-1>",lambda e,item=item:copy_to_clipboard(item))
        listnumber += 1

def copy_to_clipboard(item):
    root.clipboard_clear()
    root.clipboard_append("font=('" + item.lstrip('@') + "', 12)")

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("<Configure>", lambda event, canvas=canvas: onFrameConfigure(canvas))

populate(frame)

root.mainloop()

I hope this helps somebody.

Edit: Clicking on font name will copy it to clipboard ready for use in your tkinter script, per request from @idbrii .

2 of 12
47
from tkinter import Tk, font
root = Tk()
font.families()
๐ŸŒ
Reddit
reddit.com โ€บ r/python โ€บ list of fonts for tkinter
r/Python on Reddit: List of fonts for tkinter
November 30, 2022 -

I have had a hard time looking for something that outlines all the fonts that Tkinter can use. so I decided to make my own list it's not big but it works so anyone who needs it here:

Arial

Times New Roman

Comic Sans MS

Courier New

Impact

Georgia

Lexend (make sure you specify if its bold, thin etc)

Comfortaa

if anyone has a link to a website that's better or has a better list put it in the comments please.

๐ŸŒ
TkDocs
tkdocs.com โ€บ tutorial โ€บ fonts.html
TkDocs Tutorial - Fonts, Colors, Images
Another way to specify fonts is via a list of attributes, starting with the font family, and optionally including a size and one or more style options. Some examples of this are Helvetica, Helvetica 12, Helvetica 12 bold, and Helvetica 12 bold italic.
๐ŸŒ
Tutorialspoint
tutorialspoint.com โ€บ python โ€บ tk_fonts.htm
Tkinter Fonts
Use thexfontsel program to help you select pleasing fonts.
๐ŸŒ
Python
docs.python.org โ€บ 3 โ€บ library โ€บ tkinter.font.html
tkinter.font โ€” Tkinter font wrapper
Source code: Lib/tkinter/font.py The tkinter.font module provides the Font class for creating and using named fonts. The different font weights and slants are:
๐ŸŒ
15. The Menu widget
anzeljg.github.io โ€บ rin2 โ€บ book2 โ€บ 2405 โ€บ docs โ€บ tkinter โ€บ fonts.html
5.4. Type fonts
For example, the font named '-*-lucidatypewriter-medium-r-*-*-*-140-*-*-*-*-*-*' is a good fixed-width font for onscreen use. Use the xfontsel program to help you select pleasing fonts. To get a list of all the families of fonts available on your platform, call this function:
๐ŸŒ
GeeksforGeeks
geeksforgeeks.org โ€บ python โ€บ tkinter-fonts
Enhancing Text Presentation with Tkinter Fonts - GeeksforGeeks
July 23, 2025 - In Graphical User Interfaces (GUIs), how text is presented holds significant importance for user experience. Tkinter, known as the Primary GUI toolkit for Python, provides powerful capabilities for font management using its Tkinter Fonts module. This module enables developers to tailor the ...
๐ŸŒ
YouTube
youtube.com โ€บ watch
Get list of all available fonts in Tkinter - YouTube
In this video, we will learn how to print or find all the available font names in Tkinter.
Published ย  July 6, 2024
Find elsewhere
๐ŸŒ
AIMosta
aimosta.com โ€บ Blogt โ€บ blogt-17.html
Fonts that Python Found in My System
April 30, 2023 - The missing fonts in a row, are replaced by an empty small list. In the code it is defined this way: emptyItem = ["Courier","",""] The entire empty rows, are represented by a list of 5 empty small list defined this way: [emptyList.append(emptyItem) for i in range(5)] And of course, the entire code is displayed below. ... from tkinter import * from tkinter import font from PIL import ImageTk, Image main_window=Tk() myList = font.families() numberOF = len(myList) myList = list(myList) myList.sort() main_window.title("Python Tkinter Cursors") bgColor="#24252B" fgColor ="#ffffff" fontsBL = [] font
๐ŸŒ
Scribd
es.scribd.com โ€บ document โ€บ 626145634 โ€บ Fonts-in-tkinter
Tkinter Font Families and Options | PDF | Arial | Digital Typography
This document lists over 200 font families that are commonly used in Microsoft products. Some of the most popular fonts included are Arial, Calibri, Times New Roman, Verdana, Segoe UI, and Comic Sans.
๐ŸŒ
Tcl Developer Site
tcl-lang.org โ€บ man โ€บ tcl8.5 โ€บ TkCmd โ€บ font.htm
font manual page - Tk Built-In Commands
Query or modify the desired attributes for the named font called fontname. If no option is specified, returns a list describing all the options and their values for fontname. If a single option is specified with no value, then returns the current value of that attribute.
๐ŸŒ
O'Reilly
oreilly.com โ€บ library โ€บ view โ€บ python-gui-programming โ€บ 9781788835886 โ€บ 05db1907-59da-48b3-a361-e9ad072235d1.xhtml
Tkinter fonts - Python GUI Programming with Tkinter [Book]
May 15, 2018 - Tkinter fonts There are three ways of specifying a widget's font in Tkinter. The simplest way is to just use a string format: tk.Label(text="Direct font format", font="Times 20... - Selection from Python GUI Programming with Tkinter [Book]
Author ย  Alan D. Moore
Published ย  2018
Pages ย  452
๐ŸŒ
Huihoo
docs.huihoo.com โ€บ tkinter โ€บ an-introduction-to-tkinter-1999 โ€บ x444-fonts.htm
Fonts - Huihoo
An Introduction to Tkinter ยท Widgets that allow you to display text in one way or another also allows you to specify which font to use. All widgets provide reasonable default values, and you seldom have to specify the font for simpler elements like labels and buttons
๐ŸŒ
Scribd
scribd.com โ€บ document โ€บ 374525753 โ€บ Tkinter-Default-Colors-and-Fonts
Tkinter Colors and Fonts Overview | PDF
20 firebrick1 #ff3030 Monotype Corsiva firebrick2 #ee2c2c Niagara Engraved firebrick3 #cd2626 Niagara Solid firebrick4 #8b1a1a OCR A Extended floralwhite #fffaf0 Old English Text MT forestgreen #228b22 Onyx gainsboro #dcdcdc Palace Script MT ...
๐ŸŒ
TutorialsPoint
tutorialspoint.com โ€บ how-to-list-available-font-families-in-tkinter
How to list available font families in Tkinter?
April 22, 2021 - #Import required library from tkinter import * from tkinter import font #Create an instance of tkinter frame win = Tk() win.geometry("750x350") win.title('Font List') #Create a list of font using the font-family constructor fonts=list(font.families()) fonts.sort() def fill_frame(frame): for f in fonts: #Create a label to display the font label = Label(frame,text=f,font=(f, 14)).pack() def onFrameConfigure(canvas): canvas.configure(scrollregion=canvas.bbox("all")) #Create a canvas canvas = Canvas(win,bd=1, background="white") #Create a frame inside the canvas frame = Frame(canvas, background="w
๐ŸŒ
Delft Stack
delftstack.com โ€บ home โ€บ howto โ€บ python tkinter โ€บ how to set font of tkinter text widget
How to Set Font of Tkinter Text Widget | Delft Stack
February 2, 2024 - You could also list the font families in your working environment with the following codes, import tkinter as tk import tkinter.font as tkFont print(list(tkFont.families()))
๐ŸŒ
Linux Hint
linuxhint.com โ€บ tkinter-fonts
Tkinter Fonts
August 9, 2023 - Linux Hint LLC, [email protected] 1210 Kelly Park Circle, Morgan Hill, CA 95037 Privacy Policy and Terms of Use
๐ŸŒ
AskPython
askpython.com โ€บ home โ€บ python tkinter tutorial: understanding the tkinter font class
Python Tkinter Tutorial: Understanding the Tkinter Font Class - AskPython
October 11, 2021 - Here is a list of the main components and classes of Tkinter. Root/Window: It is the main widget of this library. A resizable window that holds other sub widgets. Label: A label that can handle task of maintaining the labelling of each widget. It defines their properties. Button: A simple button that functions according to the user commands. Font...
๐ŸŒ
GeeksforGeeks
geeksforgeeks.org โ€บ how-to-set-font-for-text-in-tkinter
How to set font for Text in Tkinter? - GeeksforGeeks
April 1, 2025 - Explanation: In this code, a Text widget is created in the main window with a height of 10 lines. The font is set directly in the widgetโ€™s constructor using the tuple ("Verdana", 18, "italic"), which specifies the font family as "Verdana", the size as 18, and the style as "italic". ... Tkinter is Python's standard GUI (Graphical User Interface) package.