mirror of
https://github.com/TomSchimansky/CustomTkinter.git
synced 2023-08-10 21:13:13 +03:00
refactored example_button_images.py to class structure
This commit is contained in:
@@ -1,22 +1,40 @@
|
||||
import customtkinter
|
||||
|
||||
|
||||
class ExampleApp(customtkinter.CTk):
|
||||
def __init__(self, *args, **kwargs):
|
||||
class ToplevelWindow(customtkinter.CTkToplevel):
|
||||
def __init__(self, *args, closing_event=None, **kwargs):
|
||||
super().__init__(*args, **kwargs)
|
||||
self.protocol("WM_DELETE_WINDOW", self.closing)
|
||||
self.geometry("500x300")
|
||||
self.closing_event = closing_event
|
||||
|
||||
self.label = customtkinter.CTkLabel(self, text="ToplevelWindow")
|
||||
self.label.pack(padx=20, pady=20)
|
||||
|
||||
def closing(self):
|
||||
self.destroy()
|
||||
if self.closing_event is not None:
|
||||
self.closing_event()
|
||||
|
||||
|
||||
class App(customtkinter.CTk):
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
self.geometry("500x400")
|
||||
|
||||
self.button_1 = customtkinter.CTkButton(self, text="Create CTkToplevel", command=self.create_toplevel)
|
||||
self.button_1 = customtkinter.CTkButton(self, text="Open CTkToplevel", command=self.open_toplevel)
|
||||
self.button_1.pack(side="top", padx=40, pady=40)
|
||||
|
||||
def create_toplevel(self):
|
||||
window = customtkinter.CTkToplevel(self)
|
||||
window.geometry("400x200")
|
||||
self.toplevel_window = None
|
||||
|
||||
label = customtkinter.CTkLabel(window, text="CTkToplevel window")
|
||||
label.pack(side="top", fill="both", expand=True, padx=40, pady=40)
|
||||
def open_toplevel(self):
|
||||
if self.toplevel_window is None: # create toplevel window only if not already open
|
||||
self.toplevel_window = ToplevelWindow(self, closing_event=self.toplevel_close_event)
|
||||
|
||||
def toplevel_close_event(self):
|
||||
self.toplevel_window = None
|
||||
|
||||
|
||||
app = ExampleApp()
|
||||
app.mainloop()
|
||||
if __name__ == "__main__":
|
||||
app = App()
|
||||
app.mainloop()
|
||||
|
||||
Reference in New Issue
Block a user