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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b6cdf73d1646d263e36c737672d9a9813e8b69fe6fcb8b97334a2bea5252c82e
|
|
| MD5 |
acf0f25c6195a9e82f381d7dc3c64ac5
|
|
| BLAKE2b-256 |
036f6a987f56e2784069c8aa816d68f19b965973f17cc94dc5d8456a42bf9f5e
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
21879c91a12c9896860d8762223d609359d4a214d2793aaf2f9e48051554694c
|
|
| MD5 |
8ee031503c8c273bd3ff58ea114d78be
|
|
| BLAKE2b-256 |
e0aca8ec03110477775a47363e50dc6d04d3259d7c8037a54ed98dd4efa60010
|