Added name attribute to CTkButton, CTkFrame and CTkBaseClass

This commit is contained in:
octimot 2023-05-31 17:34:07 +02:00
parent 37b375d58b
commit d973d844ce
3 changed files with 10 additions and 4 deletions

View File

@ -2,7 +2,7 @@ import sys
import warnings
import tkinter
import tkinter.ttk as ttk
from typing import Union, Callable, Tuple
from typing import Union, Callable, Tuple, Optional
try:
from typing import TypedDict
@ -35,10 +35,12 @@ class CTkBaseClass(tkinter.Frame, CTkAppearanceModeBaseClass, CTkScalingBaseClas
height: int = 0,
bg_color: Union[str, Tuple[str, str]] = "transparent",
name: Optional[str] = None,
**kwargs):
# call init methods of super classes
tkinter.Frame.__init__(self, master=master, width=width, height=height, **pop_from_dict_by_set(kwargs, self._valid_tk_frame_attributes))
tkinter.Frame.__init__(self, master=master, width=width, height=height, name=name, **pop_from_dict_by_set(kwargs, self._valid_tk_frame_attributes))
CTkAppearanceModeBaseClass.__init__(self)
CTkScalingBaseClass.__init__(self, scaling_type="widget")

View File

@ -46,10 +46,12 @@ class CTkButton(CTkBaseClass):
command: Union[Callable[[], None], None] = None,
compound: str = "left",
anchor: str = "center",
name: Optional[str] = None,
**kwargs):
# transfer basic functionality (bg_color, size, appearance_mode, scaling) to CTkBaseClass
super().__init__(master=master, bg_color=bg_color, width=width, height=height, **kwargs)
super().__init__(master=master, bg_color=bg_color, width=width, height=height, name=name, **kwargs)
# shape
self._corner_radius: int = ThemeManager.theme["CTkButton"]["corner_radius"] if corner_radius is None else corner_radius

View File

@ -27,10 +27,12 @@ class CTkFrame(CTkBaseClass):
background_corner_colors: Union[Tuple[Union[str, Tuple[str, str]]], None] = None,
overwrite_preferred_drawing_method: Union[str, None] = None,
name: Optional[str] = None,
**kwargs):
# transfer basic functionality (_bg_color, size, __appearance_mode, scaling) to CTkBaseClass
super().__init__(master=master, bg_color=bg_color, width=width, height=height, **kwargs)
super().__init__(master=master, bg_color=bg_color, width=width, height=height, name=name, **kwargs)
# color
self._border_color = ThemeManager.theme["CTkFrame"]["border_color"] if border_color is None else self._check_color_type(border_color)