17db96d56Sopenharmony_ci:mod:`tkinter.font` --- Tkinter font wrapper
27db96d56Sopenharmony_ci============================================
37db96d56Sopenharmony_ci
47db96d56Sopenharmony_ci.. module:: tkinter.font
57db96d56Sopenharmony_ci   :platform: Tk
67db96d56Sopenharmony_ci   :synopsis: Tkinter font-wrapping class
77db96d56Sopenharmony_ci
87db96d56Sopenharmony_ci**Source code:** :source:`Lib/tkinter/font.py`
97db96d56Sopenharmony_ci
107db96d56Sopenharmony_ci--------------
117db96d56Sopenharmony_ci
127db96d56Sopenharmony_ciThe :mod:`tkinter.font` module provides the :class:`Font` class for creating
137db96d56Sopenharmony_ciand using named fonts.
147db96d56Sopenharmony_ci
157db96d56Sopenharmony_ciThe different font weights and slants are:
167db96d56Sopenharmony_ci
177db96d56Sopenharmony_ci.. data:: NORMAL
187db96d56Sopenharmony_ci          BOLD
197db96d56Sopenharmony_ci          ITALIC
207db96d56Sopenharmony_ci          ROMAN
217db96d56Sopenharmony_ci
227db96d56Sopenharmony_ci.. class:: Font(root=None, font=None, name=None, exists=False, **options)
237db96d56Sopenharmony_ci
247db96d56Sopenharmony_ci   The :class:`Font` class represents a named font. *Font* instances are given
257db96d56Sopenharmony_ci   unique names and can be specified by their family, size, and style
267db96d56Sopenharmony_ci   configuration. Named fonts are Tk's method of creating and identifying
277db96d56Sopenharmony_ci   fonts as a single object, rather than specifying a font by its attributes
287db96d56Sopenharmony_ci   with each occurrence.
297db96d56Sopenharmony_ci
307db96d56Sopenharmony_ci    arguments:
317db96d56Sopenharmony_ci
327db96d56Sopenharmony_ci       | *font* - font specifier tuple (family, size, options)
337db96d56Sopenharmony_ci       | *name* - unique font name
347db96d56Sopenharmony_ci       | *exists* - self points to existing named font if true
357db96d56Sopenharmony_ci
367db96d56Sopenharmony_ci    additional keyword options (ignored if *font* is specified):
377db96d56Sopenharmony_ci
387db96d56Sopenharmony_ci       | *family* - font family i.e. Courier, Times
397db96d56Sopenharmony_ci       | *size* - font size
407db96d56Sopenharmony_ci       |     If *size* is positive it is interpreted as size in points.
417db96d56Sopenharmony_ci       |     If *size* is a negative number its absolute value is treated
427db96d56Sopenharmony_ci       |     as size in pixels.
437db96d56Sopenharmony_ci       | *weight* - font emphasis (NORMAL, BOLD)
447db96d56Sopenharmony_ci       | *slant* - ROMAN, ITALIC
457db96d56Sopenharmony_ci       | *underline* - font underlining (0 - none, 1 - underline)
467db96d56Sopenharmony_ci       | *overstrike* - font strikeout (0 - none, 1 - strikeout)
477db96d56Sopenharmony_ci
487db96d56Sopenharmony_ci   .. method:: actual(option=None, displayof=None)
497db96d56Sopenharmony_ci
507db96d56Sopenharmony_ci      Return the attributes of the font.
517db96d56Sopenharmony_ci
527db96d56Sopenharmony_ci   .. method:: cget(option)
537db96d56Sopenharmony_ci
547db96d56Sopenharmony_ci      Retrieve an attribute of the font.
557db96d56Sopenharmony_ci
567db96d56Sopenharmony_ci   .. method:: config(**options)
577db96d56Sopenharmony_ci
587db96d56Sopenharmony_ci      Modify attributes of the font.
597db96d56Sopenharmony_ci
607db96d56Sopenharmony_ci   .. method:: copy()
617db96d56Sopenharmony_ci
627db96d56Sopenharmony_ci      Return new instance of the current font.
637db96d56Sopenharmony_ci
647db96d56Sopenharmony_ci   .. method:: measure(text, displayof=None)
657db96d56Sopenharmony_ci
667db96d56Sopenharmony_ci      Return amount of space the text would occupy on the specified display
677db96d56Sopenharmony_ci      when formatted in the current font. If no display is specified then the
687db96d56Sopenharmony_ci      main application window is assumed.
697db96d56Sopenharmony_ci
707db96d56Sopenharmony_ci   .. method:: metrics(*options, **kw)
717db96d56Sopenharmony_ci
727db96d56Sopenharmony_ci      Return font-specific data.
737db96d56Sopenharmony_ci      Options include:
747db96d56Sopenharmony_ci
757db96d56Sopenharmony_ci      *ascent* - distance between baseline and highest point that a
767db96d56Sopenharmony_ci         character of the font can occupy
777db96d56Sopenharmony_ci
787db96d56Sopenharmony_ci      *descent* - distance between baseline and lowest point that a
797db96d56Sopenharmony_ci         character of the font can occupy
807db96d56Sopenharmony_ci
817db96d56Sopenharmony_ci      *linespace* - minimum vertical separation necessary between any two
827db96d56Sopenharmony_ci         characters of the font that ensures no vertical overlap between lines.
837db96d56Sopenharmony_ci
847db96d56Sopenharmony_ci      *fixed* - 1 if font is fixed-width else 0
857db96d56Sopenharmony_ci
867db96d56Sopenharmony_ci.. function:: families(root=None, displayof=None)
877db96d56Sopenharmony_ci
887db96d56Sopenharmony_ci   Return the different font families.
897db96d56Sopenharmony_ci
907db96d56Sopenharmony_ci.. function:: names(root=None)
917db96d56Sopenharmony_ci
927db96d56Sopenharmony_ci   Return the names of defined fonts.
937db96d56Sopenharmony_ci
947db96d56Sopenharmony_ci.. function:: nametofont(name, root=None)
957db96d56Sopenharmony_ci
967db96d56Sopenharmony_ci   Return a :class:`Font` representation of a tk named font.
977db96d56Sopenharmony_ci
987db96d56Sopenharmony_ci   .. versionchanged:: 3.10
997db96d56Sopenharmony_ci      The *root* parameter was added.
100