Skip to main content

tkFontChooser

A simple font chooser for tkinter that allows the user to select the font family among the fonts available on his/her system. The size and style (bold, italic, underline, strike-through) of the text can be set too.

This module contains a FontSelector class which implements the font chooser and an ask_font function that displays the font chooser and returns the chosen font when the user closes the font chooser. The font is returned as a dictionary like the one returned by the function tkFont.Font.actual.

Requirements

  • Linux, Windows, Mac
  • Python 3 with tkinter

Installation

pip install tkFontSelector

Documentation

from tkfontselector import ask_font

ask_font(master=None, text="Abcd", title="Font Chooser", **font_args)

Open the font chooser and return a dictionary of the font properties. This dictionary is similar to the one returned by the actual method of a tkinter Font object.

# example dictionary
{'family': str,
    'size': int,
    'weight': 'bold'/'normal',
    'slant': 'italic'/'roman',
    'underline': bool,
    'overstrike': bool}

General arguments

master: Tk, Toplevel, or None (Optional)

text: str (Optional) text to show in the font selection window

title: str (Optional) changes the title of the window

fixed_only: (bool, None) (Optional), if set to True will display mono spaced fonts only, if set to False will only show regular fonts, if set to None will show everything

families_only: bool (Optional), if set to True will only show Font Families part of the UI

font_dict: dict (Optional) font dictionary like an actual Font object

**kwargs: (Optional) pass any other args that might be accepted

Font Arguments

family: str

size: int

slant: str (roman or italic)

weight: str (normal or bold)

underline: bool

overstrike: bool

Example

EXAMPLE_FONT_FAMILY = {
    "family": "Comic Sans MS",
    "size": 10,
    "weight": "normal",
    "slant": "roman",
    "underline": 0,
    "overstrike": 0,
}


if __name__ == "__main__":
    """Example Usage"""
    root = Tk()
    style = ttk.Style(root)
    if "win" == platform[:3]:
        style.theme_use("vista")
    elif "darwin" in platform:
        style.theme_use("clam")
    else:
        style.theme_use("clam")
    bg = style.lookup("TLabel", "background")
    root.configure(bg=bg)
    label = ttk.Label(root, text="Chosen font: ")
    label.pack(padx=10, pady=(10, 4))

    def callback():
        font = ask_font(root, title="Choose a font", font_args=EXAMPLE_FONT_FAMILY)
        if font:
            # spaces in the family name need to be escaped
            font["family"] = font["family"].replace(" ", "\ ")
            font_str = "%(family)s %(size)i %(weight)s %(slant)s" % font
            if font["underline"]:
                font_str += " underline"
            if font["overstrike"]:
                font_str += " overstrike"
            label.configure(
                font=font_str, text="Chosen font: " + font_str.replace("\ ", " ")
            )

    ttk.Button(root, text="Font Selector", command=callback).pack(padx=10, pady=(4, 10))
    root.mainloop()

Release files for tkfontselector 1.0.11

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tkfontselector 1.0.11
File Size Uploaded
tkfontselector-1.0.11.tar.gz 9.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for tkfontselector 1.0.11
File Interpreter ABI Platform
tkfontselector-1.0.11-py3-none-any.whl Python 3 none any Details

Total release size: 19.4 kB

Release files / tkfontselector-1.0.11.tar.gz

Download URL tkfontselector-1.0.11.tar.gz
Size 9.5 kB
Tags Source
SHA-256 checksum
How to use checksums
b6cdf73d1646d263e36c737672d9a9813e8b69fe6fcb8b97334a2bea5252c82e
BLAKE2b-256 checksum
How to use checksums
036f6a987f56e2784069c8aa816d68f19b965973f17cc94dc5d8456a42bf9f5e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.3 CPython/3.11.9 Windows/10

Release files / tkfontselector-1.0.11-py3-none-any.whl

Download URL tkfontselector-1.0.11-py3-none-any.whl
Size 10.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
21879c91a12c9896860d8762223d609359d4a214d2793aaf2f9e48051554694c
BLAKE2b-256 checksum
How to use checksums
e0aca8ec03110477775a47363e50dc6d04d3259d7c8037a54ed98dd4efa60010
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.3 CPython/3.11.9 Windows/10

Release history Release notifications | RSS feed

This release

1.0.11 This release

2 release files

1.0.9

2 release files

1.0.8

2 release files

1.0.7

2 release files

1.0.6

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page