refactored child windows into Window class
This commit is contained in:
@@ -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):
|
def __init__(self, root: tk.Tk):
|
||||||
super().__init__(root)
|
super().__init__(root)
|
||||||
self.root = root
|
self.root = root
|
||||||
self.protocol("WM_DELETE_WINDOW", self.close_window)
|
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.geometry(f"500x330+{self.root.winfo_x() + 20}+{self.root.winfo_y() + 20}")
|
||||||
|
|
||||||
self.config = Config()
|
self.config = Config()
|
||||||
|
|
||||||
self.json_file = tk.StringVar()
|
self.json_file = tk.StringVar()
|
||||||
self.csv_file = tk.StringVar()
|
self.csv_file = tk.StringVar()
|
||||||
|
|
||||||
@@ -94,14 +111,6 @@ class SettingsWindow(tk.Toplevel):
|
|||||||
def cancel(self):
|
def cancel(self):
|
||||||
self.close_window()
|
self.close_window()
|
||||||
|
|
||||||
def close_window(self):
|
|
||||||
self.destroy_window()
|
|
||||||
|
|
||||||
def destroy_window(self):
|
|
||||||
self.root.update()
|
|
||||||
self.root.deiconify()
|
|
||||||
self.destroy()
|
|
||||||
|
|
||||||
|
|
||||||
class Config:
|
class Config:
|
||||||
parser: ConfigParser
|
parser: ConfigParser
|
||||||
@@ -260,12 +269,11 @@ class Application:
|
|||||||
self.root.destroy()
|
self.root.destroy()
|
||||||
|
|
||||||
def show_settings(self):
|
def show_settings(self):
|
||||||
settings = SettingsWindow(self.root)
|
settings = self.open_window(SettingsWindow)
|
||||||
settings.wm_transient(self.root)
|
|
||||||
settings.grab_set()
|
|
||||||
settings.wait_window()
|
settings.wait_window()
|
||||||
|
|
||||||
def insert_record(self):
|
def insert_record(self):
|
||||||
|
self.open_window(InsertRecord)
|
||||||
if self.current_record is not None:
|
if self.current_record is not None:
|
||||||
self.clear_entry_fields()
|
self.clear_entry_fields()
|
||||||
children = self.table.get_children()
|
children = self.table.get_children()
|
||||||
@@ -431,6 +439,11 @@ class Application:
|
|||||||
for item in self.table.get_children():
|
for item in self.table.get_children():
|
||||||
self.table.delete(item)
|
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__':
|
if __name__ == '__main__':
|
||||||
Application()
|
Application()
|
||||||
|
|||||||
Reference in New Issue
Block a user