mirror of
https://github.com/TomSchimansky/CustomTkinter.git
synced 2023-08-10 21:13:13 +03:00
added focus wrapper functions to all widgets
This commit is contained in:
@@ -54,9 +54,9 @@ class CTkButton(CTkBaseClass):
|
||||
|
||||
# text, font, image
|
||||
self._image = image
|
||||
self._image_label = None
|
||||
self._image_label: Union[tkinter.Label, None] = None
|
||||
self._text = text
|
||||
self._text_label = None
|
||||
self._text_label: Union[tkinter.Label, None] = None
|
||||
self._font = (ThemeManager.theme["text"]["font"], ThemeManager.theme["text"]["size"]) if font == "default_theme" else font
|
||||
|
||||
# callback and hover functionality
|
||||
@@ -65,7 +65,7 @@ class CTkButton(CTkBaseClass):
|
||||
self._state = state
|
||||
self._hover = hover
|
||||
self._compound = compound
|
||||
self._click_animation_running = False
|
||||
self._click_animation_running: bool = False
|
||||
|
||||
# configure grid system (2x2)
|
||||
self.grid_rowconfigure(0, weight=1)
|
||||
@@ -420,3 +420,12 @@ class CTkButton(CTkBaseClass):
|
||||
canvas_bind_return, label_bind_return = funcid.split(" + ")
|
||||
self._canvas.unbind(sequence, canvas_bind_return)
|
||||
self._text_label.unbind(sequence, label_bind_return)
|
||||
|
||||
def focus(self):
|
||||
return self._text_label.focus()
|
||||
|
||||
def focus_set(self):
|
||||
return self._text_label.focus_set()
|
||||
|
||||
def focus_force(self):
|
||||
return self._text_label.focus_force()
|
||||
|
||||
@@ -371,3 +371,12 @@ class CTkCheckBox(CTkBaseClass):
|
||||
def unbind(self, sequence, funcid=None):
|
||||
""" called on the tkinter.Canvas """
|
||||
return self._canvas.unbind(sequence, funcid)
|
||||
|
||||
def focus(self):
|
||||
return self._text_label.focus()
|
||||
|
||||
def focus_set(self):
|
||||
return self._text_label.focus_set()
|
||||
|
||||
def focus_force(self):
|
||||
return self._text_label.focus_force()
|
||||
|
||||
@@ -357,3 +357,12 @@ class CTkComboBox(CTkBaseClass):
|
||||
def unbind(self, sequence, funcid=None):
|
||||
""" called on the tkinter.Entry """
|
||||
return self._entry.unbind(sequence, funcid)
|
||||
|
||||
def focus(self):
|
||||
return self._entry.focus()
|
||||
|
||||
def focus_set(self):
|
||||
return self._entry.focus_set()
|
||||
|
||||
def focus_force(self):
|
||||
return self._entry.focus_force()
|
||||
|
||||
@@ -313,6 +313,9 @@ class CTkEntry(CTkBaseClass):
|
||||
def focus(self):
|
||||
return self._entry.focus()
|
||||
|
||||
def focus_set(self):
|
||||
return self._entry.focus_set()
|
||||
|
||||
def focus_force(self):
|
||||
return self._entry.focus_force()
|
||||
|
||||
|
||||
@@ -90,6 +90,9 @@ class CTkFrame(CTkBaseClass):
|
||||
|
||||
def _draw(self, no_color_updates=False):
|
||||
|
||||
if not self._canvas.winfo_exists():
|
||||
return
|
||||
|
||||
requires_recoloring = self._draw_engine.draw_rounded_rect_with_border(self._apply_widget_scaling(self._current_width),
|
||||
self._apply_widget_scaling(self._current_height),
|
||||
self._apply_widget_scaling(self._corner_radius),
|
||||
|
||||
@@ -193,3 +193,12 @@ class CTkLabel(CTkBaseClass):
|
||||
canvas_bind_return, label_bind_return = funcid.split(" + ")
|
||||
self._canvas.unbind(sequence, canvas_bind_return)
|
||||
self._text_label.unbind(sequence, label_bind_return)
|
||||
|
||||
def focus(self):
|
||||
return self._text_label.focus()
|
||||
|
||||
def focus_set(self):
|
||||
return self._text_label.focus_set()
|
||||
|
||||
def focus_force(self):
|
||||
return self._text_label.focus_force()
|
||||
|
||||
@@ -369,3 +369,12 @@ class CTkOptionMenu(CTkBaseClass):
|
||||
canvas_bind_return, label_bind_return = funcid.split(" + ")
|
||||
self._canvas.unbind(sequence, canvas_bind_return)
|
||||
self._text_label.unbind(sequence, label_bind_return)
|
||||
|
||||
def focus(self):
|
||||
return self._text_label.focus()
|
||||
|
||||
def focus_set(self):
|
||||
return self._text_label.focus_set()
|
||||
|
||||
def focus_force(self):
|
||||
return self._text_label.focus_force()
|
||||
|
||||
@@ -290,3 +290,12 @@ class CTkProgressBar(CTkBaseClass):
|
||||
def unbind(self, sequence, funcid=None):
|
||||
""" called on the tkinter.Canvas """
|
||||
return self._canvas.unbind(sequence, funcid)
|
||||
|
||||
def focus(self):
|
||||
return self._canvas.focus()
|
||||
|
||||
def focus_set(self):
|
||||
return self._canvas.focus_set()
|
||||
|
||||
def focus_force(self):
|
||||
return self._canvas.focus_force()
|
||||
|
||||
@@ -333,3 +333,12 @@ class CTkRadioButton(CTkBaseClass):
|
||||
def unbind(self, sequence, funcid=None):
|
||||
""" called on the tkinter.Canvas """
|
||||
return self._canvas.unbind(sequence, funcid)
|
||||
|
||||
def focus(self):
|
||||
return self._text_label.focus()
|
||||
|
||||
def focus_set(self):
|
||||
return self._text_label.focus_set()
|
||||
|
||||
def focus_force(self):
|
||||
return self._text_label.focus_force()
|
||||
|
||||
@@ -257,3 +257,12 @@ class CTkScrollbar(CTkBaseClass):
|
||||
def unbind(self, sequence, funcid=None):
|
||||
""" called on the tkinter.Canvas """
|
||||
return self._canvas.unbind(sequence, funcid)
|
||||
|
||||
def focus(self):
|
||||
return self._canvas.focus()
|
||||
|
||||
def focus_set(self):
|
||||
return self._canvas.focus_set()
|
||||
|
||||
def focus_force(self):
|
||||
return self._canvas.focus_force()
|
||||
|
||||
@@ -373,3 +373,12 @@ class CTkSlider(CTkBaseClass):
|
||||
def unbind(self, sequence, funcid=None):
|
||||
""" called on the tkinter.Canvas """
|
||||
return self._canvas.unbind(sequence, funcid)
|
||||
|
||||
def focus(self):
|
||||
return self._canvas.focus()
|
||||
|
||||
def focus_set(self):
|
||||
return self._canvas.focus_set()
|
||||
|
||||
def focus_force(self):
|
||||
return self._canvas.focus_force()
|
||||
|
||||
@@ -382,3 +382,12 @@ class CTkSwitch(CTkBaseClass):
|
||||
def unbind(self, sequence, funcid=None):
|
||||
""" called on the tkinter.Canvas """
|
||||
return self._canvas.unbind(sequence, funcid)
|
||||
|
||||
def focus(self):
|
||||
return self._text_label.focus()
|
||||
|
||||
def focus_set(self):
|
||||
return self._text_label.focus_set()
|
||||
|
||||
def focus_force(self):
|
||||
return self._text_label.focus_force()
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
from .widget_base_class import CTkBaseClass
|
||||
|
||||
|
||||
class CTkTabview(CTkBaseClass):
|
||||
def __init__(self, *args,
|
||||
**kwargs):
|
||||
super().__init__(*args, **kwargs)
|
||||
pass
|
||||
|
||||
@@ -203,6 +203,9 @@ class CTkTextbox(CTkBaseClass):
|
||||
|
||||
def _draw(self, no_color_updates=False):
|
||||
|
||||
if not self._canvas.winfo_exists():
|
||||
return
|
||||
|
||||
requires_recoloring = self._draw_engine.draw_rounded_rect_with_border(self._apply_widget_scaling(self._current_width),
|
||||
self._apply_widget_scaling(self._current_height),
|
||||
self._apply_widget_scaling(self._corner_radius),
|
||||
@@ -313,6 +316,15 @@ class CTkTextbox(CTkBaseClass):
|
||||
""" called on the tkinter.Text """
|
||||
return self._textbox.unbind(sequence, funcid)
|
||||
|
||||
def focus(self):
|
||||
return self._textbox.focus()
|
||||
|
||||
def focus_set(self):
|
||||
return self._textbox.focus_set()
|
||||
|
||||
def focus_force(self):
|
||||
return self._textbox.focus_force()
|
||||
|
||||
def insert(self, index, text, tags=None):
|
||||
self._check_if_scrollbars_needed()
|
||||
return self._textbox.insert(index, text, tags)
|
||||
|
||||
Reference in New Issue
Block a user