Readme added gif

This commit is contained in:
Tom Schimansky 2021-03-14 15:45:02 +01:00
parent e2b2db08df
commit 7f67c833fb
7 changed files with 110 additions and 2 deletions

View File

@ -72,6 +72,11 @@ which gives the following with the above simple button program:
![](documentation_images/simple_macOS_darkmode_test.png)
If you set the appearance mode to "System", it should change with
the System mode:
![](documentation_images/customtkinter_mode_switch.gif)
### Advanced example with multiple CTkFrames
Here I used the ``customtkinter.enable_macos_darkmode()`` command to

View File

@ -4,6 +4,7 @@ from .customtkinter_frame import CTkFrame
from .customtkinter_progressbar import CTkProgressBar
from .customtkinter_label import CTkLabel
from .customtkinter_entry import CTkEntry
from .customtkinter_dialog import CTkDialog
from .appearance_mode_tracker import AppearanceModeTracker, SystemAppearanceModeListenerNoThread
from .customtkinter_color_manager import CTkColorManager

View File

@ -248,7 +248,7 @@ class CTkButton(tkinter.Frame):
def set_text(self, text):
self.text = text
if self.text_label is not None:
self.text_label.configure(text=self.text)
self.text_label.configure(text=self.text, width=len(self.text))
else:
sys.stderr.write("ERROR (CTkButton): Cant change text because button has no text.")

View File

@ -0,0 +1,100 @@
import tkinter
import time
from customtkinter.customtkinter_label import CTkLabel
from customtkinter.customtkinter_button import CTkButton
from customtkinter.customtkinter_entry import CTkEntry
from customtkinter.customtkinter_color_manager import CTkColorManager
class CTkDialog:
def __init__(self,
master=None,
title="CTkDialog",
text="CTkDialog",
fg_color=CTkColorManager.MAIN,
hover_color=CTkColorManager.MAIN_HOVER):
self.master = master
self.user_input = None
self.running = False
self.height = len(text.split("\n"))*20 + 150
self.fg_color = fg_color
self.hover_color = hover_color
self.top = tkinter.Toplevel()
self.top.geometry("300x{}".format(self.height))
self.top.resizable(False, False)
self.top.title(title)
self.label_frame = tkinter.Frame(master=self.top,
width=300,
height=self.height-100)
self.label_frame.place(relx=0.5, rely=0, anchor=tkinter.N)
self.button_and_entry_frame = tkinter.Frame(master=self.top,
width=300,
height=100)
self.button_and_entry_frame.place(relx=0.5, rely=1, anchor=tkinter.S)
self.myLabel = CTkLabel(master=self.label_frame,
text=text,
width=300,
height=self.height-100)
self.myLabel.place(relx=0.5, rely=0.5, anchor=tkinter.CENTER)
self.entry = CTkEntry(master=self.button_and_entry_frame,
width=180)
self.entry.place(relx=0.5, rely=0.15, anchor=tkinter.CENTER)
self.ok_button = CTkButton(master=self.button_and_entry_frame,
text='Ok',
command=self.ok_event,
fg_color=self.fg_color,
hover_color=self.hover_color)
self.ok_button.place(relx=0.25, rely=0.75, anchor=tkinter.CENTER)
self.cancel_button = CTkButton(master=self.button_and_entry_frame,
text='Cancel',
command=self.cancel_event,
fg_color=self.fg_color,
hover_color=self.hover_color)
self.cancel_button.place(relx=0.75, rely=0.75, anchor=tkinter.CENTER)
def ok_event(self):
self.user_input = self.entry.get()
self.running = False
def cancel_event(self):
self.running = False
def get_input(self):
self.running = True
while self.running:
self.top.update()
time.sleep(0.01)
time.sleep(0.05)
self.top.destroy()
return self.user_input
if __name__ == "__main__":
import customtkinter
customtkinter.enable_macos_darkmode()
customtkinter.set_appearance_mode("System")
app = tkinter.Tk()
app.title("CTkDialog Test")
def button_click_event():
dialog = CTkDialog(master=None, text="Type in a number:", title="Test", fg_color="green", hover_color="darkgreen")
print("Number:", dialog.get_input())
button = CTkButton(master=app, text="Open Dialog", command=button_click_event)
button.place(relx=0.5, rely=0.5, anchor=tkinter.CENTER)
app.mainloop()
customtkinter.disable_macos_darkmode()

View File

@ -125,7 +125,7 @@ class CTkLabel(tkinter.Frame):
self.draw()
def set_text(self, text):
self.text_label.configure(text=text)
self.text_label.configure(text=text, width=len(self.text))
def change_appearance_mode(self, mode_string):
if mode_string.lower() == "dark":

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

View File

@ -9,9 +9,11 @@ root_tk = tkinter.Tk() # create the Tk window like you normally do
root_tk.geometry("400x240")
root_tk.title("CustomTkinter Test")
def button_function():
print("button pressed")
# load images as PhotoImage
settings_image = ImageTk.PhotoImage(Image.open("test_images/settings.png").resize((40, 40)))
bell_image = ImageTk.PhotoImage(Image.open("test_images/bell.png").resize((40, 40)))