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