11import wx
22
3+ from modules .debug_window import DebugLogger
4+ from modules .window_manager import WindowManager
5+
36
47class SecurePasswordTextCtrl (wx .TextCtrl ):
58 def __init__ (self , parent ):
@@ -16,12 +19,13 @@ def on_key_down(self, event):
1619
1720
1821class PasswordChanger (wx .Frame ):
19- def __init__ (self , parent = None ):
22+ def __init__ (self ):
2023 style = wx .CAPTION | wx .STAY_ON_TOP | wx .CLOSE_BOX
21- super ().__init__ (parent , title = "Windows 登录辅助工具" , size = (400 , 250 ), style = style ) # 修复点:传递parent给父类
22- self .parent = parent # 保存父窗口引用
24+ super ().__init__ (None , title = "Windows 登录辅助工具" , size = (320 , 250 ), style = style )
25+ self .SetIcon ( wx . Icon ( "Assets/icon.ico" )) # 设置窗口图标
2326 self .init_ui ()
2427 self .Center ()
28+ DebugLogger .log ("[DEBUG] PasswordChanger 初始化完成" )
2529
2630 def init_ui (self ):
2731 panel = wx .Panel (self )
@@ -40,23 +44,33 @@ def init_ui(self):
4044 grid .Add (self .confirm_pass , 0 , wx .EXPAND )
4145
4246 btn_box = wx .BoxSizer (wx .HORIZONTAL )
43- btn_change = wx .Button (panel , label = "修改密码" )
44- btn_return = wx .Button (panel , label = "返回" )
47+ btn_change = wx .Button (panel , label = "确认修改" , size = ( 80 , 30 ) )
48+ btn_return = wx .Button (panel , label = "返回" , size = ( 80 , 30 ) )
4549 btn_change .Bind (wx .EVT_BUTTON , self .on_change )
4650 btn_return .Bind (wx .EVT_BUTTON , self .on_return )
4751 btn_box .Add (btn_change , 0 , wx .RIGHT , 10 )
4852 btn_box .Add (btn_return )
4953
54+ tittle = wx .StaticText (panel , label = "修改用户密码" , style = wx .ALIGN_CENTER )
55+ tittle_font = tittle .GetFont ()
56+ tittle_font .SetPointSize (12 ) # 设置字体大小为12
57+ tittle_font .SetWeight (wx .FONTWEIGHT_BOLD ) # 设置字体为粗体
58+ tittle .SetFont (tittle_font )
59+
5060 main_sizer = wx .BoxSizer (wx .VERTICAL )
61+ main_sizer .AddStretchSpacer (1 )
62+ main_sizer .Add (tittle , 0 , wx .ALIGN_CENTER )
63+ main_sizer .AddStretchSpacer (1 )
5164 main_sizer .Add (grid , 1 , wx .EXPAND | wx .ALL , 15 )
65+ main_sizer .AddStretchSpacer (1 )
5266 main_sizer .Add (btn_box , 0 , wx .ALIGN_CENTER | wx .BOTTOM , 15 )
5367
5468 panel .SetSizer (main_sizer )
5569
5670 def on_return (self , event ):
57- if self . parent : # 修改点4:直接使用保存的父窗口引用
58- self . parent . Show ( )
59- self . Destroy () # 修改点5:销毁当前窗口
71+ from modules . main_window import MainWindow
72+ DebugLogger . log ( "[DEBUG] 正在从修改用户密码窗口返回主窗口" )
73+ WindowManager (). switch_window ( MainWindow )
6074
6175 def on_change (self , event ):
6276 try :
@@ -72,26 +86,25 @@ def on_change(self, event):
7286
7387 # 调试信息已在CommandExecutor中处理
7488 if success :
75- wx .MessageBox ("密码修改成功! " , "成功" , wx .OK | wx .ICON_INFORMATION )
89+ wx .MessageBox ("密码修改成功! " , "成功" , wx .OK | wx .ICON_INFORMATION )
7690 else :
77- wx .MessageBox (f"操作失败: { msg } " , "错误" , wx .OK | wx .ICON_ERROR )
78- except Exception as e :
79- wx .MessageBox (f"系统错误: { str (e )} " , "错误" , wx .OK | wx .ICON_ERROR )
91+ wx .MessageBox (f"[ERROR] 操作失败: { msg } " , "错误" , wx .OK | wx .ICON_ERROR )
92+ except ( Exception , RuntimeError , NotImplementedError ) as e :
93+ wx .MessageBox (f"[ERROR] 系统错误: { str (e )} " , "错误" , wx .OK | wx .ICON_ERROR )
8094 finally :
8195 self .new_pass .Value = ""
8296 self .confirm_pass .Value = ""
8397
8498 def validate_input (self , username , p1 , p2 ):
8599 if not username :
86- wx .MessageBox ("用户名不能为空" , "错误" , wx .OK | wx .ICON_ERROR )
100+ wx .MessageBox ("用户名不能为空! " , "错误" , wx .OK | wx .ICON_ERROR )
87101 return False
88102 if p1 != p2 :
89- wx .MessageBox ("两次输入的密码不一致" , "错误" , wx .OK | wx .ICON_ERROR )
103+ wx .MessageBox ("两次输入的密码不一致! " , "错误" , wx .OK | wx .ICON_ERROR )
90104 return False
91105 return True
92106
93107
94108def run ():
95109 app = wx .App ()
96- PasswordChanger ().Show ()
97110 app .MainLoop ()
0 commit comments