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:

tkinter.font.NORMAL
tkinter.font.BOLD
tkinter.font.ITALIC
tkinter.font.ROMAN
class tkinter.font.Font(root=None, font=None, name=None, exists=False, **options)

The Font class represents a named font. Font instances are given unique names and can be specified by their family, size, and style configuration. Named fonts are Tk’s method of creating and identifying fonts as a single object, rather than specifying a font by its attributes with each occurrence.

arguments:

font - font specifier tuple (family, size, options)
name - unique font name
exists - self points to existing named font if true

additional keyword options (ignored if font is specified):

family - font family i.e. Courier, Times
size - font size
If size is positive it is interpreted as size in points.
If size is a negative number its absolute value is treated
as size in pixels.
weight - font emphasis (NORMAL, BOLD)
slant - ROMAN, ITALIC
underline - font underlining (0 - none, 1 - underline)
overstrike - font strikeout (0 - none, 1 - strikeout)
actual(option=None, displayof=None)

Return the attributes of the font.

cget(option)

Retrieve an attribute of the font.

config(**options)

Modify attributes of the font.

copy()

Return new instance of the current font.

measure(text, displayof=None)

Return amount of space the text would occupy on the specified display when formatted in the current font. If no display is specified then the main application window is assumed.

metrics(*options, **kw)

Return font-specific data. Options include:

ascent - distance between baseline and highest point that a

character of the font can occupy

descent - distance between baseline and lowest point that a

character of the font can occupy

linespace - minimum vertical separation necessary between any two

characters of the font that ensures no vertical overlap between lines.

fixed - 1 if font is fixed-width else 0

tkinter.font.families(root=None, displayof=None)

Return the different font families.

tkinter.font.names(root=None)

Return the names of defined fonts.

tkinter.font.nametofont(name, root=None)

Return a Font representation of a tk named font.

Changed in version 3.10: The root parameter was added.