added scaling tracker

This commit is contained in:
Tom Schimansky
2022-04-19 00:01:33 +02:00
parent 5ede252b2f
commit 17d4b9fcba
17 changed files with 128 additions and 19 deletions

View File

@ -6,9 +6,10 @@ from .customtkinter_tk import CTk
from .customtkinter_frame import CTkFrame
from .customtkinter_canvas import CTkCanvas
from customtkinter.appearance_mode_tracker import AppearanceModeTracker
from ..customtkinter_theme_manager import CTkThemeManager
from ..theme_manager import CTkThemeManager
from ..customtkinter_settings import CTkSettings
from ..customtkinter_draw_engine import CTkDrawEngine
from ..scaling_tracker import ScalingTracker
class CTkButton(tkinter.Frame):
@ -61,6 +62,9 @@ class CTkButton(tkinter.Frame):
AppearanceModeTracker.add(self.set_appearance_mode, self)
self.appearance_mode = AppearanceModeTracker.get_mode() # 0: "Light" 1: "Dark"
ScalingTracker.add_widget(self.set_scaling, self)
self.scaling = ScalingTracker.get_widget_scaling(self)
self.configure_basic_grid()
# color variables
@ -72,7 +76,7 @@ class CTkButton(tkinter.Frame):
# shape and size
self.width = width
self.height = height
self.configure(width=self.width, height=self.height)
self.configure(width=self.width * self.scaling, height=self.height * self.scaling)
self.corner_radius = CTkThemeManager.theme["shape"]["button_corner_radius"] if corner_radius == "default_theme" else corner_radius
self.border_width = CTkThemeManager.theme["shape"]["button_border_width"] if border_width == "default_theme" else border_width
@ -95,8 +99,8 @@ class CTkButton(tkinter.Frame):
self.canvas = CTkCanvas(master=self,
highlightthickness=0,
width=self.width,
height=self.height)
width=self.width * self.scaling,
height=self.height * self.scaling)
self.canvas.grid(row=0, column=0, rowspan=2, columnspan=2, sticky="nsew")
self.draw_engine = CTkDrawEngine(self.canvas, CTkSettings.preferred_drawing_method)
@ -414,3 +418,9 @@ class CTkButton(tkinter.Frame):
self.bg_color = self.master.cget("bg")
self.draw()
def set_scaling(self, scaling_factor):
self.scaling = scaling_factor
self.configure(width=self.width * self.scaling, height=self.height * self.scaling)
self.canvas.configure(width=self.width * self.scaling, height=self.height * self.scaling)
self.draw(no_color_updates=True)

View File

@ -6,7 +6,7 @@ from .customtkinter_tk import CTk
from .customtkinter_frame import CTkFrame
from .customtkinter_canvas import CTkCanvas
from ..appearance_mode_tracker import AppearanceModeTracker
from ..customtkinter_theme_manager import CTkThemeManager
from ..theme_manager import CTkThemeManager
from ..customtkinter_settings import CTkSettings
from ..customtkinter_draw_engine import CTkDrawEngine

View File

@ -5,7 +5,7 @@ from .customtkinter_tk import CTk
from .customtkinter_frame import CTkFrame
from .customtkinter_canvas import CTkCanvas
from ..appearance_mode_tracker import AppearanceModeTracker
from ..customtkinter_theme_manager import CTkThemeManager
from ..theme_manager import CTkThemeManager
from ..customtkinter_settings import CTkSettings
from ..customtkinter_draw_engine import CTkDrawEngine

View File

@ -4,7 +4,7 @@ import tkinter.ttk as ttk
from .customtkinter_tk import CTk
from .customtkinter_canvas import CTkCanvas
from ..appearance_mode_tracker import AppearanceModeTracker
from ..customtkinter_theme_manager import CTkThemeManager
from ..theme_manager import CTkThemeManager
from ..customtkinter_settings import CTkSettings
from ..customtkinter_draw_engine import CTkDrawEngine

View File

@ -7,7 +7,7 @@ from .customtkinter_frame import CTkFrame
from .customtkinter_toplevel import CTkToplevel
from .customtkinter_button import CTkButton
from ..appearance_mode_tracker import AppearanceModeTracker
from ..customtkinter_theme_manager import CTkThemeManager
from ..theme_manager import CTkThemeManager
class CTkInputDialog:

View File

@ -5,7 +5,7 @@ from .customtkinter_tk import CTk
from .customtkinter_frame import CTkFrame
from .customtkinter_canvas import CTkCanvas
from ..appearance_mode_tracker import AppearanceModeTracker
from ..customtkinter_theme_manager import CTkThemeManager
from ..theme_manager import CTkThemeManager
from ..customtkinter_settings import CTkSettings
from ..customtkinter_draw_engine import CTkDrawEngine

View File

@ -6,7 +6,7 @@ from .customtkinter_tk import CTk
from .customtkinter_frame import CTkFrame
from .customtkinter_canvas import CTkCanvas
from ..appearance_mode_tracker import AppearanceModeTracker
from ..customtkinter_theme_manager import CTkThemeManager
from ..theme_manager import CTkThemeManager
from ..customtkinter_draw_engine import CTkDrawEngine
from ..customtkinter_settings import CTkSettings

View File

@ -6,7 +6,7 @@ from .customtkinter_tk import CTk
from .customtkinter_frame import CTkFrame
from .customtkinter_canvas import CTkCanvas
from ..appearance_mode_tracker import AppearanceModeTracker
from ..customtkinter_theme_manager import CTkThemeManager
from ..theme_manager import CTkThemeManager
from ..customtkinter_settings import CTkSettings
from ..customtkinter_draw_engine import CTkDrawEngine

View File

@ -6,7 +6,7 @@ from .customtkinter_tk import CTk
from .customtkinter_frame import CTkFrame
from .customtkinter_canvas import CTkCanvas
from ..appearance_mode_tracker import AppearanceModeTracker
from ..customtkinter_theme_manager import CTkThemeManager
from ..theme_manager import CTkThemeManager
from ..customtkinter_settings import CTkSettings
from ..customtkinter_draw_engine import CTkDrawEngine

View File

@ -6,7 +6,7 @@ from .customtkinter_tk import CTk
from .customtkinter_frame import CTkFrame
from .customtkinter_canvas import CTkCanvas
from ..appearance_mode_tracker import AppearanceModeTracker
from ..customtkinter_theme_manager import CTkThemeManager
from ..theme_manager import CTkThemeManager
from ..customtkinter_settings import CTkSettings
from ..customtkinter_draw_engine import CTkDrawEngine

View File

@ -6,7 +6,7 @@ import platform
import ctypes
from ..appearance_mode_tracker import AppearanceModeTracker
from ..customtkinter_theme_manager import CTkThemeManager
from ..theme_manager import CTkThemeManager
class CTk(tkinter.Tk):

View File

@ -6,7 +6,7 @@ import platform
import ctypes
from ..appearance_mode_tracker import AppearanceModeTracker
from ..customtkinter_theme_manager import CTkThemeManager
from ..theme_manager import CTkThemeManager
class CTkToplevel(tkinter.Toplevel):