# `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.