CustomTkinter/test/manual_integration_tests/test_ctk_toplevel.py

41 lines
1.2 KiB
Python

import customtkinter
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="Open CTkToplevel", command=self.open_toplevel)
self.button_1.pack(side="top", padx=40, pady=40)
self.toplevel_window = None
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
if __name__ == "__main__":
app = App()
app.mainloop()