@@ -66,6 +66,19 @@ def _display_reported_mac(mid: str) -> str:
6666 return "-" .join ([hx [i : i + 2 ] for i in range (0 , 12 , 2 )])
6767
6868
69+ # 主窗口最小尺寸(子对话框在布局完成后用 _dlg_lock_min_size,与「网络访问限制」相同:minsize 对齐自身 geometry / 所需尺寸,不跟主窗口)
70+ _MIN_WIN_W , _MIN_WIN_H = 1080 , 560
71+
72+
73+ def _apply_min_window_size (win : tk .Misc ) -> None :
74+ win .minsize (_MIN_WIN_W , _MIN_WIN_H )
75+
76+
77+ def _dlg_lock_min_size (d : tk .Misc ) -> None :
78+ d .update_idletasks ()
79+ d .minsize (d .winfo_reqwidth (), d .winfo_reqheight ())
80+
81+
6982class TeacherApp (tk .Tk ):
7083 def __init__ (
7184 self ,
@@ -77,7 +90,8 @@ def __init__(
7790 ) -> None :
7891 super ().__init__ ()
7992 self .title ("机房管理 — 教师端 by MisakaNo(QQ:1689910089)" )
80- self .geometry ("1080x560" )
93+ self .geometry (f"{ _MIN_WIN_W } x{ _MIN_WIN_H } " )
94+ _apply_min_window_size (self )
8195 self ._server = server
8296 self ._on_enqueue_rename = on_enqueue_rename
8397 self ._on_enqueue_set_ipv4 = on_enqueue_set_ipv4
@@ -499,6 +513,7 @@ def clear_filter() -> None:
499513 d .columnconfigure (0 , weight = 1 )
500514 d .columnconfigure (1 , weight = 1 )
501515 d .columnconfigure (2 , weight = 1 )
516+ _dlg_lock_min_size (d )
502517
503518 def refresh_sessions (self , sessions : List ["ClientSession" ]) -> None :
504519 self ._sessions_cache = list (sessions )
@@ -542,6 +557,7 @@ def ok() -> None:
542557 ttk .Button (bf , text = "确定" , command = ok ).pack (side = tk .LEFT , padx = 4 )
543558 ttk .Button (bf , text = "取消" , command = d .destroy ).pack (side = tk .LEFT , padx = 4 )
544559 d .columnconfigure (0 , weight = 1 )
560+ _dlg_lock_min_size (d )
545561
546562 def _dlg_ipv4 (self ) -> None :
547563 sids = self .selected_session_ids ()
@@ -622,6 +638,7 @@ def ok() -> None:
622638 ttk .Button (bf , text = "确定" , command = ok ).pack (side = tk .LEFT , padx = 4 )
623639 ttk .Button (bf , text = "取消" , command = d .destroy ).pack (side = tk .LEFT , padx = 4 )
624640 d .columnconfigure (0 , weight = 1 )
641+ _dlg_lock_min_size (d )
625642
626643 def _dlg_power (self ) -> None :
627644 sids = self .selected_session_ids ()
@@ -655,6 +672,7 @@ def run_power_action(act: str) -> None:
655672 ttk .Button (bf , text = "重启" , command = lambda : run_power_action ("reboot" )).pack (
656673 side = tk .LEFT
657674 )
675+ _dlg_lock_min_size (d )
658676
659677 def _dlg_network_restrict (self ) -> None :
660678 sids = self .selected_session_ids ()
@@ -666,6 +684,7 @@ def _dlg_network_restrict(self) -> None:
666684 d .transient (self )
667685 d .grab_set ()
668686 d .geometry ("550x520" )
687+ d .minsize (550 , 520 )
669688
670689 config = _load_config ()
671690 saved_mode = config .get ("network_restrict" , {}).get ("mode" , "blacklist" )
0 commit comments