refactored child windows into Window class

This commit is contained in:
2025-04-19 14:01:33 +02:00
parent bb31a52934
commit 72b4614d4d

View File

@@ -18,15 +18,32 @@ def show_error(message_title: str, message: str, parent: tk.Tk | tk.Toplevel):
)
class SettingsWindow(tk.Toplevel):
class Window(tk.Toplevel):
def __init__(self, root: tk.Tk):
super().__init__(root)
self.root = root
self.protocol("WM_DELETE_WINDOW", self.close_window)
def close_window(self):
self.destroy_window()
def destroy_window(self):
self.root.update()
self.destroy()
class InsertRecord(Window):
def __init__(self, root: tk.Tk):
super().__init__(root)
self.title("Adresse einfügen")
tk.Button(self, text="Abbrechen", command=self.close_window).pack()
class SettingsWindow(Window):
def __init__(self, root: tk.Tk):
super().__init__(root)
self.geometry(f"500x330+{self.root.winfo_x() + 20}+{self.root.winfo_y() + 20}")
self.config = Config()
self.json_file = tk.StringVar()
self.csv_file = tk.StringVar()
@@ -94,14 +111,6 @@ class SettingsWindow(tk.Toplevel):
def cancel(self):
self.close_window()
def close_window(self):
self.destroy_window()
def destroy_window(self):
self.root.update()
self.root.deiconify()
self.destroy()
class Config:
parser: ConfigParser
@@ -260,12 +269,11 @@ class Application:
self.root.destroy()
def show_settings(self):
settings = SettingsWindow(self.root)
settings.wm_transient(self.root)
settings.grab_set()
settings = self.open_window(SettingsWindow)
settings.wait_window()
def insert_record(self):
self.open_window(InsertRecord)
if self.current_record is not None:
self.clear_entry_fields()
children = self.table.get_children()
@@ -431,6 +439,11 @@ class Application:
for item in self.table.get_children():
self.table.delete(item)
def open_window(self, child: type[Window]) -> Window:
window = child(self.root)
window.wm_transient(self.root)
window.grab_set()
return window
if __name__ == '__main__':
Application()