Open In App

How to change default font in Tkinter?

Prerequisites: Tkinter

Tkinter provides a variety of fonts for different things i.e Heading, Caption, Text, Menu, etc. But the good thing is we can override these fonts using tkinter.font module.



Some fonts provided by the Tkinter are:

In this article, we are going to change the default font. In order to do this, we need to override/ change the configuration of TkDefaultFont. Changing/ overriding the default font is very easy and can be done in the listed way:



Given below is the proper approach for doing the same.

Approach

Program:




# Import tkinter.Tk and widgets
from tkinter import Tk, font
from tkinter.ttk import Button, Label
  
  
class App:
    def __init__(self, master: Tk) -> None:
        self.master = master
  
        # Creating a Font object of "TkDefaultFont"
        self.defaultFont = font.nametofont("TkDefaultFont")
  
        # Overriding default-font with custom settings
        # i.e changing font-family, size and weight
        self.defaultFont.configure(family="Segoe Script",
                                   size=19,
                                   weight=font.BOLD)
  
        # Label widget
        self.label = Label(self.master, text="I'm Label")
        self.label.pack()
  
        # Button widget
        self.btn = Button(self.master, text="I'm Button")
        self.btn.pack()
  
  
if __name__ == "__main__":
    # Top level widget
    root = Tk()
  
    # Setting window dimensions
    root.geometry("300x150")
  
    # Setting app title
    root.title("Changing Default Font")
  
    print(font.names())
  
    app = App(root)
  
    # Mainloop to run application
    # infinitely
    root.mainloop()

Output:

Before changing configuration

After changing configuration


Article Tags :