mirror of
https://github.com/TomSchimansky/CustomTkinter.git
synced 2023-08-10 21:13:13 +03:00
removed pyglet and added new font loading method
This commit is contained in:
parent
a4e8d30535
commit
c277fc48bc
@ -65,21 +65,36 @@ def set_default_color_theme(color_string):
|
|||||||
CTkThemeManager.load_theme(color_string)
|
CTkThemeManager.load_theme(color_string)
|
||||||
|
|
||||||
|
|
||||||
|
# Load fonts:
|
||||||
if sys.platform.startswith("win"):
|
if sys.platform.startswith("win"):
|
||||||
import warnings
|
from ctypes import windll, byref, create_unicode_buffer, create_string_buffer
|
||||||
|
|
||||||
warnings.simplefilter("ignore", category=UserWarning)
|
FR_PRIVATE = 0x10
|
||||||
|
FR_NOT_ENUM = 0x20
|
||||||
|
|
||||||
|
|
||||||
|
def loadfont(fontpath, private=True, enumerable=False):
|
||||||
|
""" Function taken from: https://stackoverflow.com/questions/11993290/truly-custom-font-in-tkinter/30631309#30631309 """
|
||||||
|
|
||||||
|
if isinstance(fontpath, bytes):
|
||||||
|
pathbuf = create_string_buffer(fontpath)
|
||||||
|
AddFontResourceEx = windll.gdi32.AddFontResourceExA
|
||||||
|
elif isinstance(fontpath, str):
|
||||||
|
pathbuf = create_unicode_buffer(fontpath)
|
||||||
|
AddFontResourceEx = windll.gdi32.AddFontResourceExW
|
||||||
|
else:
|
||||||
|
raise TypeError('fontpath must be of type str or unicode')
|
||||||
|
|
||||||
|
flags = (FR_PRIVATE if private else 0) | (FR_NOT_ENUM if not enumerable else 0)
|
||||||
|
num_fonts_added = AddFontResourceEx(byref(pathbuf), flags, 0)
|
||||||
|
return bool(num_fonts_added)
|
||||||
|
|
||||||
import pyglet.font
|
|
||||||
|
|
||||||
# load text fonts and custom font with circle shapes for round corner rendering
|
# load text fonts and custom font with circle shapes for round corner rendering
|
||||||
script_directory = os.path.dirname(os.path.abspath(__file__))
|
script_directory = os.path.dirname(os.path.abspath(__file__))
|
||||||
pyglet.font.add_file(os.path.join(script_directory, "assets", "fonts", "CustomTkinter_shapes_font-fine.otf"))
|
CTkSettings.circle_font_is_ready = loadfont(os.path.join(script_directory, "assets", "fonts", "CustomTkinter_shapes_font-fine.otf"))
|
||||||
pyglet.font.add_file(os.path.join(script_directory, "assets", "fonts", "Roboto", "Roboto-Regular.ttf"))
|
loadfont(os.path.join(script_directory, "assets", "fonts", "Roboto", "Roboto-Regular.ttf"))
|
||||||
pyglet.font.add_file(os.path.join(script_directory, "assets", "fonts", "Roboto", "Roboto-Medium.ttf"))
|
loadfont(os.path.join(script_directory, "assets", "fonts", "Roboto", "Roboto-Medium.ttf"))
|
||||||
CTkSettings.circle_font_is_ready = pyglet.font.have_font("CustomTkinter_shapes_font")
|
|
||||||
|
|
||||||
warnings.simplefilter("default")
|
|
||||||
|
|
||||||
# correct drawing method if font could not be loaded
|
# correct drawing method if font could not be loaded
|
||||||
if not CTkSettings.circle_font_is_ready:
|
if not CTkSettings.circle_font_is_ready:
|
||||||
|
@ -47,7 +47,7 @@ class App(customtkinter.CTk):
|
|||||||
self.button_output = customtkinter.CTkButton(master=self.frame_right, border_color=App.MAIN_COLOR,
|
self.button_output = customtkinter.CTkButton(master=self.frame_right, border_color=App.MAIN_COLOR,
|
||||||
fg_color=None, hover_color=App.MAIN_HOVER,
|
fg_color=None, hover_color=App.MAIN_HOVER,
|
||||||
height=28, text="Output Folder", command=self.button_outputFunc,
|
height=28, text="Output Folder", command=self.button_outputFunc,
|
||||||
border_width=3, corner_radius=10, text_font=('Calibri',16))
|
border_width=3, corner_radius=10, text_font=('Calibri',12))
|
||||||
self.button_output.place(relx=0.05, rely=0.06, anchor=tkinter.NW)
|
self.button_output.place(relx=0.05, rely=0.06, anchor=tkinter.NW)
|
||||||
self.entry_output = customtkinter.CTkEntry(master=self.frame_right, width=320, height=38, corner_radius=5)
|
self.entry_output = customtkinter.CTkEntry(master=self.frame_right, width=320, height=38, corner_radius=5)
|
||||||
self.entry_output.place(relx=0.05, rely=0.18, anchor=tkinter.NW)
|
self.entry_output.place(relx=0.05, rely=0.18, anchor=tkinter.NW)
|
||||||
|
Loading…
Reference in New Issue
Block a user