mirror of
https://github.com/TomSchimansky/CustomTkinter.git
synced 2023-08-10 21:13:13 +03:00
added .configure() to CTkSlider
This commit is contained in:
parent
b7fc6f3ad9
commit
9109663848
@ -52,7 +52,7 @@ class CTkSlider(tkinter.Frame):
|
|||||||
self.configure(cursor="pointinghand")
|
self.configure(cursor="pointinghand")
|
||||||
|
|
||||||
self.canvas = tkinter.Canvas(master=self,
|
self.canvas = tkinter.Canvas(master=self,
|
||||||
highlightthicknes=0,
|
highlightthickness=0,
|
||||||
width=self.width,
|
width=self.width,
|
||||||
height=self.height)
|
height=self.height)
|
||||||
self.canvas.place(x=0, y=0)
|
self.canvas.place(x=0, y=0)
|
||||||
@ -268,6 +268,11 @@ class CTkSlider(tkinter.Frame):
|
|||||||
return self.output_value
|
return self.output_value
|
||||||
|
|
||||||
def set(self, output_value):
|
def set(self, output_value):
|
||||||
|
if output_value > self.to:
|
||||||
|
output_value = self.to
|
||||||
|
elif output_value < self.from_:
|
||||||
|
output_value = self.from_
|
||||||
|
|
||||||
self.output_value = self.round_to_step_size(output_value)
|
self.output_value = self.round_to_step_size(output_value)
|
||||||
self.value = (self.output_value - self.from_) / (self.to - self.from_)
|
self.value = (self.output_value - self.from_) / (self.to - self.from_)
|
||||||
|
|
||||||
@ -276,6 +281,71 @@ class CTkSlider(tkinter.Frame):
|
|||||||
if self.callback_function is not None:
|
if self.callback_function is not None:
|
||||||
self.callback_function(self.output_value)
|
self.callback_function(self.output_value)
|
||||||
|
|
||||||
|
def config(self, *args, **kwargs):
|
||||||
|
self.configure(*args, **kwargs)
|
||||||
|
|
||||||
|
def configure(self, *args, **kwargs):
|
||||||
|
require_redraw = False # some attribute changes require a call of self.draw() at the end
|
||||||
|
|
||||||
|
if "fg_color" in kwargs:
|
||||||
|
self.fg_color = kwargs["fg_color"]
|
||||||
|
require_redraw = True
|
||||||
|
del kwargs["fg_color"]
|
||||||
|
|
||||||
|
if "bg_color" in kwargs:
|
||||||
|
if kwargs["bg_color"] is None:
|
||||||
|
self.bg_color = self.detect_color_of_master()
|
||||||
|
else:
|
||||||
|
self.bg_color = kwargs["bg_color"]
|
||||||
|
require_redraw = True
|
||||||
|
del kwargs["bg_color"]
|
||||||
|
|
||||||
|
if "progress_color" in kwargs:
|
||||||
|
self.progress_color = kwargs["progress_color"]
|
||||||
|
require_redraw = True
|
||||||
|
del kwargs["progress_color"]
|
||||||
|
|
||||||
|
if "button_color" in kwargs:
|
||||||
|
self.button_color = kwargs["button_color"]
|
||||||
|
require_redraw = True
|
||||||
|
del kwargs["button_color"]
|
||||||
|
|
||||||
|
if "button_hover_color" in kwargs:
|
||||||
|
self.button_hover_color = kwargs["button_hover_color"]
|
||||||
|
require_redraw = True
|
||||||
|
del kwargs["button_hover_color"]
|
||||||
|
|
||||||
|
if "border_color" in kwargs:
|
||||||
|
self.border_color = kwargs["border_color"]
|
||||||
|
require_redraw = True
|
||||||
|
del kwargs["border_color"]
|
||||||
|
|
||||||
|
if "border_width" in kwargs:
|
||||||
|
self.border_width = kwargs["border_width"]
|
||||||
|
require_redraw = True
|
||||||
|
del kwargs["border_width"]
|
||||||
|
|
||||||
|
if "from_" in kwargs:
|
||||||
|
self.from_ = kwargs["from_"]
|
||||||
|
del kwargs["from_"]
|
||||||
|
|
||||||
|
if "to" in kwargs:
|
||||||
|
self.to = kwargs["to"]
|
||||||
|
del kwargs["to"]
|
||||||
|
|
||||||
|
if "number_of_steps" in kwargs:
|
||||||
|
self.number_of_steps = kwargs["number_of_steps"]
|
||||||
|
del kwargs["number_of_steps"]
|
||||||
|
|
||||||
|
if "command" in kwargs:
|
||||||
|
self.callback_function = kwargs["command"]
|
||||||
|
del kwargs["command"]
|
||||||
|
|
||||||
|
super().configure(*args, **kwargs)
|
||||||
|
|
||||||
|
if require_redraw:
|
||||||
|
self.draw()
|
||||||
|
|
||||||
def change_appearance_mode(self, mode_string):
|
def change_appearance_mode(self, mode_string):
|
||||||
if mode_string.lower() == "dark":
|
if mode_string.lower() == "dark":
|
||||||
self.appearance_mode = 1
|
self.appearance_mode = 1
|
||||||
|
@ -104,6 +104,8 @@ class App(tkinter.Tk):
|
|||||||
width=160,
|
width=160,
|
||||||
height=16,
|
height=16,
|
||||||
border_width=5,
|
border_width=5,
|
||||||
|
from_=1,
|
||||||
|
to=0,
|
||||||
number_of_steps=3,
|
number_of_steps=3,
|
||||||
command=self.progressbar.set)
|
command=self.progressbar.set)
|
||||||
self.slider_1.place(x=20, rely=0.6, anchor=tkinter.W)
|
self.slider_1.place(x=20, rely=0.6, anchor=tkinter.W)
|
||||||
@ -113,6 +115,7 @@ class App(tkinter.Tk):
|
|||||||
width=160,
|
width=160,
|
||||||
height=16,
|
height=16,
|
||||||
border_width=5,
|
border_width=5,
|
||||||
|
progress_color=("gray65", "gray40"),
|
||||||
command=self.progressbar.set)
|
command=self.progressbar.set)
|
||||||
self.slider_2.place(x=20, rely=0.7, anchor=tkinter.W)
|
self.slider_2.place(x=20, rely=0.7, anchor=tkinter.W)
|
||||||
self.slider_2.set(0.7)
|
self.slider_2.set(0.7)
|
||||||
|
@ -35,7 +35,7 @@ button_1 = customtkinter.CTkButton(master=frame_1, corner_radius=10, command=but
|
|||||||
button_1.place(relx=0.5, rely=0.4, anchor=tkinter.CENTER)
|
button_1.place(relx=0.5, rely=0.4, anchor=tkinter.CENTER)
|
||||||
# button_1.configure(state="disabled")
|
# button_1.configure(state="disabled")
|
||||||
|
|
||||||
slider_1 = customtkinter.CTkSlider(master=frame_1, command=slider_function, from_=0, to=2, progress_color="gray40")
|
slider_1 = customtkinter.CTkSlider(master=frame_1, command=slider_function, from_=0, to=1, progress_color=("gray65", "gray40"))
|
||||||
slider_1.place(relx=0.5, rely=0.55, anchor=tkinter.CENTER)
|
slider_1.place(relx=0.5, rely=0.55, anchor=tkinter.CENTER)
|
||||||
slider_1.set(1.5)
|
slider_1.set(1.5)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user