Compare commits

...

1 Commits

View File

@@ -55,7 +55,6 @@ class DHCPApp(tk.Frame):
def __init__(self, master: tk.Tk) -> None: def __init__(self, master: tk.Tk) -> None:
super().__init__(master) super().__init__(master)
master.title("Simple DHCP Server (Lab)") master.title("Simple DHCP Server (Lab)")
master.minsize(700, 500)
self.pack(fill="both", expand=True, padx=12, pady=12) self.pack(fill="both", expand=True, padx=12, pady=12)
# Single server instance # Single server instance
@@ -111,13 +110,13 @@ class DHCPApp(tk.Frame):
left = ttk.Labelframe(paned, text="Aktive Clients / Leases") left = ttk.Labelframe(paned, text="Aktive Clients / Leases")
self.clients = tk.Listbox(left, height=12) self.clients = tk.Listbox(left, height=12)
self.clients.pack(fill="both", expand=True, padx=6, pady=6) self.clients.pack(fill="both", expand=True, padx=6, pady=6)
paned.add(left, weight=1) paned.add(left, weight=1, minsize=240)
# Logs # Logs
right = ttk.Labelframe(paned, text="Log") right = ttk.Labelframe(paned, text="Log")
self.log = tk.Text(right, height=12, state="disabled") self.log = tk.Text(right, height=12, state="disabled")
self.log.pack(fill="both", expand=True, padx=6, pady=6) self.log.pack(fill="both", expand=True, padx=6, pady=6)
paned.add(right, weight=2) paned.add(right, weight=2, minsize=360)
# --- Status bar --- # --- Status bar ---
self.status_var = tk.StringVar(value="Bereit.") self.status_var = tk.StringVar(value="Bereit.")
@@ -125,6 +124,7 @@ class DHCPApp(tk.Frame):
status.pack(fill="x", side="bottom") status.pack(fill="x", side="bottom")
self._refresh_interface_list(initial=True) self._refresh_interface_list(initial=True)
self._apply_min_sizes()
# periodic refresh # periodic refresh
self.after(400, self._refresh) self.after(400, self._refresh)
@@ -192,6 +192,13 @@ class DHCPApp(tk.Frame):
if not initial: if not initial:
self.status_var.set("Keine Netzwerk-Interfaces gefunden.") self.status_var.set("Keine Netzwerk-Interfaces gefunden.")
def _apply_min_sizes(self) -> None:
# Ensure window cannot shrink below a comfortable layout
self.update_idletasks()
min_w = max(self.winfo_reqwidth() + 16, 720)
min_h = max(self.winfo_reqheight() + 16, 540)
self.master.minsize(min_w, min_h)
def rescan_interfaces(self) -> None: def rescan_interfaces(self) -> None:
if self.server and self.server.is_running(): if self.server and self.server.is_running():
messagebox.showinfo("Server läuft", "Stoppe den Server, bevor du Interfaces neu scannst.") messagebox.showinfo("Server läuft", "Stoppe den Server, bevor du Interfaces neu scannst.")