Skip to main content

Tkinter Font Selector

Project description

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()

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tkfontselector-1.0.11.tar.gz (9.5 kB view details)

Uploaded Source

Built Distribution

tkfontselector-1.0.11-py3-none-any.whl (10.0 kB view details)

Uploaded Python 3

File details

Details for the file tkfontselector-1.0.11.tar.gz.

File metadata

  • Download URL: tkfontselector-1.0.11.tar.gz
  • Upload date:
  • Size: 9.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.11.9 Windows/10

File hashes

Hashes for tkfontselector-1.0.11.tar.gz
Algorithm Hash digest
SHA256 b6cdf73d1646d263e36c737672d9a9813e8b69fe6fcb8b97334a2bea5252c82e
MD5 acf0f25c6195a9e82f381d7dc3c64ac5
BLAKE2b-256 036f6a987f56e2784069c8aa816d68f19b965973f17cc94dc5d8456a42bf9f5e

See more details on using hashes here.

File details

Details for the file tkfontselector-1.0.11-py3-none-any.whl.

File metadata

  • Download URL: tkfontselector-1.0.11-py3-none-any.whl
  • Upload date:
  • Size: 10.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.11.9 Windows/10

File hashes

Hashes for tkfontselector-1.0.11-py3-none-any.whl
Algorithm Hash digest
SHA256 21879c91a12c9896860d8762223d609359d4a214d2793aaf2f9e48051554694c
MD5 8ee031503c8c273bd3ff58ea114d78be
BLAKE2b-256 e0aca8ec03110477775a47363e50dc6d04d3259d7c8037a54ed98dd4efa60010

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page