how to find list of all fonts in Tkinter

Description: Finding All Available Fonts in Tkinter

Objective

The goal is to retrieve and display a list of all font families that are available in Tkinter. This can be useful for customizing the appearance of GUI elements in a Tkinter application or for providing users with font selection options.

Steps to Find All Available Fonts

 

Import Required Modules You need to import the tkinter module for creating GUI elements and the font submodule from tkinter to access font-related functionality.

import tkinter as tk
from tkinter import font

Create a Tkinter Main Window Initialize the main Tkinter window, which will serve as the container for displaying the list of fonts.

root = tk.Tk()
root.title("Available Fonts")
root.geometry("400x400")

Retrieve the List of Font Families Use the font.families() method to get a list of all available font families. This method returns a list of font names that can be used in Tkinter widgets.

fonts = font.families()

Display the Font List in a Tkinter Widget To display the list of fonts, create a Text widget (or any other suitable widget) and populate it with the font names. You can use a Scrollbar to handle large lists of fonts.

# Create a Frame to hold the Text widget and Scrollbar
frame = tk.Frame(root)
frame.pack(expand=True, fill="both")

# Create a Text widget to display the fonts
text_widget = tk.Text(frame, wrap="word")
text_widget.pack(side="left", expand=True, fill="both")

# Create a Scrollbar and link it to the Text widget
scrollbar = tk.Scrollbar(frame, command=text_widget.yview)
scrollbar.pack(side="right", fill="y")

text_widget.config(yscrollcommand=scrollbar.set)

# Insert the font names into the Text widget
for f in fonts:
    text_widget.insert("end", f + "\n")

Run the Main Event Loop Start the Tkinter event loop to display the window and handle user interactions.

root.mainloop()

Complete Code

Here’s a complete example of a Python script that lists all available fonts in a Tkinter window:

import tkinter as tk
from tkinter import font

# Create the main window
root = tk.Tk()
root.title("Available Fonts")
root.geometry("400x400")

# Retrieve the list of available font families
fonts = font.families()

# Create a Frame to hold the Text widget and Scrollbar
frame = tk.Frame(root)
frame.pack(expand=True, fill="both")

# Create a Text widget to display the fonts
text_widget = tk.Text(frame, wrap="word")
text_widget.pack(side="left", expand=True, fill="both")

# Create a Scrollbar and link it to the Text widget
scrollbar = tk.Scrollbar(frame, command=text_widget.yview)
scrollbar.pack(side="right", fill="y")

text_widget.config(yscrollcommand=scrollbar.set)

# Insert the font names into the Text widget
for f in fonts:
    text_widget.insert("end", f + "\n")

# Run the main event loop
root.mainloop()

Summary

This script demonstrates how to retrieve and display all available font families in Tkinter. It uses tkinter.font.families() to get the list of fonts and presents them in a scrollable Text widget. This can be useful for applications that require font customization or selection

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top