CustomTkinter/test/complete_test.py

179 lines
8.9 KiB
Python

import tkinter
import customtkinter # <- import the CustomTkinter module
customtkinter.set_appearance_mode("System") # Other: "Dark", "Light"
customtkinter.set_default_color_theme("green") # Themes: "blue" (standard), "green", "dark-blue"
class TestApp(customtkinter.CTk):
def __init__(self):
super().__init__()
self.geometry(f"{1400}x{700}")
self.title("CustomTkinter complete test")
self.create_widgets_on_tk()
self.create_widgets_on_ctk_frame()
self.create_widgets_on_ctk_frame_customized()
self.create_widgets_on_tk_frame_customized()
def change_appearance_mode(self, value):
""" gets called by self.slider_1 """
if value == 0:
self.label_1.set_text("mode: Light")
customtkinter.set_appearance_mode("Light")
elif value == 1:
self.label_1.set_text("mode: Dark")
customtkinter.set_appearance_mode("Dark")
else:
self.label_1.set_text("mode: System")
customtkinter.set_appearance_mode("System")
def create_widgets_on_tk(self):
x, y = 150, 80
self.label_1 = customtkinter.CTkLabel(master=self, text="widgets_on_tk", fg_color="gray50")
self.label_1.place(x=x, y=y, anchor=tkinter.CENTER)
self.frame_1 = customtkinter.CTkFrame(master=self, width=200, height=60)
self.frame_1.place(x=x, y=y+80, anchor=tkinter.CENTER)
self.button_1 = customtkinter.CTkButton(master=self)
self.button_1.place(x=x, y=y + 160, anchor=tkinter.CENTER)
self.entry_1 = customtkinter.CTkEntry(master=self)
self.entry_1.place(x=x, y=y + 240, anchor=tkinter.CENTER)
self.progress_bar_1 = customtkinter.CTkProgressBar(master=self)
self.progress_bar_1.place(x=x, y=y + 320, anchor=tkinter.CENTER)
self.slider_1 = customtkinter.CTkSlider(master=self, command=self.change_appearance_mode, from_=0, to=2, number_of_steps=2)
self.slider_1.place(x=x, y=y + 400, anchor=tkinter.CENTER)
self.check_box_1 = customtkinter.CTkCheckBox(master=self)
self.check_box_1.place(x=x, y=y + 480, anchor=tkinter.CENTER)
def create_widgets_on_ctk_frame(self):
x, y = 450, 40
self.ctk_frame = customtkinter.CTkFrame(master=self, width=300, height=600)
self.ctk_frame.place(x=x, y=y, anchor=tkinter.N)
self.label_2 = customtkinter.CTkLabel(master=self.ctk_frame, text="create_widgets_on_ctk_frame", fg_color="gray50", width=200)
self.label_2.place(relx=0.5, y=y, anchor=tkinter.CENTER)
self.frame_2 = customtkinter.CTkFrame(master=self.ctk_frame, width=200, height=60)
self.frame_2.place(relx=0.5, y=y + 80, anchor=tkinter.CENTER)
self.button_2 = customtkinter.CTkButton(master=self.ctk_frame, border_width=3)
self.button_2.place(relx=0.5, y=y + 160, anchor=tkinter.CENTER)
self.entry_2 = customtkinter.CTkEntry(master=self.ctk_frame)
self.entry_2.place(relx=0.5, y=y + 240, anchor=tkinter.CENTER)
self.progress_bar_2 = customtkinter.CTkProgressBar(master=self.ctk_frame)
self.progress_bar_2.place(relx=0.5, y=y + 320, anchor=tkinter.CENTER)
self.slider_2 = customtkinter.CTkSlider(master=self.ctk_frame, command=lambda v: self.label_2.set_text(str(round(v, 5))))
self.slider_2.place(relx=0.5, y=y + 400, anchor=tkinter.CENTER)
self.check_box_2 = customtkinter.CTkCheckBox(master=self.ctk_frame)
self.check_box_2.place(relx=0.5, y=y + 480, anchor=tkinter.CENTER)
def change_frame_color(self, value):
""" gets called by self.slider_3 """
def rgb2hex(rgb_color: tuple) -> str:
return "#{:02x}{:02x}{:02x}".format(round(rgb_color[0]), round(rgb_color[1]), round(rgb_color[2]))
col_1 = rgb2hex((100, 50, value * 250))
col_2 = rgb2hex((20, value * 250, 50))
self.ctk_frame_customized.configure(fg_color=col_1)
self.tk_frame_customized.configure(bg=col_1)
self.configure(bg=col_2)
self.progress_bar_3.set(value)
def create_widgets_on_ctk_frame_customized(self):
x, y = 800, 40
self.ctk_frame_customized = customtkinter.CTkFrame(master=self, width=300, height=600)
self.ctk_frame_customized.place(x=x, y=y, anchor=tkinter.N)
self.ctk_frame_customized.configure(fg_color=("#F4F4FA", "#1E2742"))
self.label_3 = customtkinter.CTkLabel(master=self.ctk_frame_customized, text="customized", corner_radius=60,
text_font=("times", 16))
self.label_3.place(relx=0.5, y=y, anchor=tkinter.CENTER)
self.label_3.configure(fg_color=("#F4F4FA", "#333D5E"), text_color=("#373E57", "#7992C1"))
self.frame_3 = customtkinter.CTkFrame(master=self.ctk_frame_customized, width=200, height=60)
self.frame_3.place(relx=0.5, y=y + 80, anchor=tkinter.CENTER)
self.frame_3.configure(fg_color=("#EBECF3", "#4B577E"))
self.button_3 = customtkinter.CTkButton(master=self.ctk_frame_customized, command=lambda: x, border_width=3,
corner_radius=20, text_font=("times", 16))
self.button_3.place(relx=0.5, y=y + 160, anchor=tkinter.CENTER)
self.button_3.configure(border_color=("#4F90F8", "#6FADF9"), hover_color=("#3A65E8", "#4376EE"))
self.button_3.configure(fg_color=None)
self.entry_3 = customtkinter.CTkEntry(master=self.ctk_frame_customized, text_font=("times", 16))
self.entry_3.place(relx=0.5, y=y + 240, anchor=tkinter.CENTER)
self.entry_3.configure(fg_color=("gray60", "gray5"), corner_radius=20)
self.entry_3.insert(0, "1234567890")
self.entry_3.focus_set()
self.progress_bar_3 = customtkinter.CTkProgressBar(master=self.ctk_frame_customized, height=16, fg_color=("#EBECF3", "#4B577E"))
self.progress_bar_3.place(relx=0.5, y=y + 320, anchor=tkinter.CENTER)
self.progress_bar_3.configure(progress_color="#8AE0C3", border_width=3, border_color=("gray60", "#4B577E"))
self.slider_3 = customtkinter.CTkSlider(master=self.ctk_frame_customized, command=self.change_frame_color, from_=0, to=10)
self.slider_3.place(relx=0.5, y=y + 400, anchor=tkinter.CENTER)
self.slider_3.configure(button_color="#8AE0C3", fg_color=("#EBECF3", "#4B577E"), progress_color=("gray30", "gray10"))
self.slider_3.configure(from_=0, to=1)
self.check_box_3 = customtkinter.CTkCheckBox(master=self.ctk_frame_customized, corner_radius=50, text_font=("times", 16))
self.check_box_3.place(relx=0.5, y=y + 480, anchor=tkinter.CENTER)
self.check_box_3.configure(border_color="#8AE0C3")
def create_widgets_on_tk_frame_customized(self):
x, y = 1150, 40
self.tk_frame_customized = tkinter.Frame(master=self, width=300, height=600, bg="darkred")
self.tk_frame_customized.place(x=x, y=y, anchor=tkinter.N)
self.label_4 = customtkinter.CTkLabel(master=self.tk_frame_customized, text="customized", corner_radius=6)
self.label_4.place(relx=0.5, y=y, anchor=tkinter.CENTER)
self.label_4.configure(fg_color=("#F4F4FA", "#333D5E"), text_color=("#373E57", "#7992C1"))
self.frame_4 = customtkinter.CTkFrame(master=self.tk_frame_customized, width=200, height=60)
self.frame_4.place(relx=0.5, y=y + 80, anchor=tkinter.CENTER)
self.frame_4.configure(fg_color=("#EBECF3", "#4B577E"))
self.button_4 = customtkinter.CTkButton(master=self.tk_frame_customized, command=lambda: x, border_width=3)
self.button_4.place(relx=0.5, y=y + 160, anchor=tkinter.CENTER)
self.button_4.configure(border_color=("#4F90F8", "#6FADF9"), hover_color=("#3A65E8", "#4376EE"))
self.button_4.configure(fg_color=None)
self.entry_4 = customtkinter.CTkEntry(master=self.tk_frame_customized)
self.entry_4.place(relx=0.5, y=y + 240, anchor=tkinter.CENTER)
self.entry_4.configure(fg_color=("gray60", "gray5"))
self.entry_4.insert(0, "1234567890")
self.entry_4.focus_set()
self.progress_bar_4 = customtkinter.CTkProgressBar(master=self.tk_frame_customized, height=16, fg_color=("#EBECF3", "#4B577E"))
self.progress_bar_4.place(relx=0.5, y=y + 320, anchor=tkinter.CENTER)
self.progress_bar_4.configure(progress_color="#8AE0C3", border_width=3, border_color=("gray60", "#4B577E"))
self.slider_4 = customtkinter.CTkSlider(master=self.tk_frame_customized, command=self.change_frame_color, from_=0, to=10)
self.slider_4.place(relx=0.5, y=y + 400, anchor=tkinter.CENTER)
self.slider_4.configure(button_color="#8AE0C3", fg_color=("#EBECF3", "#4B577E"), progress_color=("gray30", "gray10"))
self.slider_4.configure(from_=0, to=1)
self.check_box_4 = customtkinter.CTkCheckBox(master=self.tk_frame_customized)
self.check_box_4.place(relx=0.5, y=y + 480, anchor=tkinter.CENTER)
self.check_box_4.configure(border_color="#8AE0C3")
if __name__ == "__main__":
test_app = TestApp()
test_app.mainloop()