1 import tkinter as tk 2 from tkinter import ttk 3 def login(root): 4 login_frame = tk.Frame(root) 5 login_frame.grid(padx=15, pady=15) 6 ttk.Label(login_frame, text='用户名').grid(column=1, row=1, columnspan=2) 7 ttk.Entry(login_frame, ).grid(column=3, row=1, columnspan=3) 8 ttk.Label(login_frame, text='密码').grid(column=1, row=2, columnspan=2) 9 ttk.Entry(login_frame, show='*').grid(column=3, row=2, columnspan=3) 10 def reg(): 11 '''这里就写你的登录需要的内容就行''' 12 reg_top = tk.Toplevel(login_frame) 13 tk.Label(reg_top, text='用户注册').grid(column=2, row=2) 14 15 def cert(): 16 '''这里需要验证用户名和密码对不对,不对就蹦出个对话框告诉他,对就destroy''' 17 login_frame.destroy() # 我这里为了测试直接销毁了 18 19 ttk.Button(login_frame, text='注册', command=reg).grid(column=2, row=3, columnspan=2, pady=15) 20 ttk.Button(login_frame, text='登录', command=cert).grid(column=4, row=3, pady=15) 21 22 return login_frame # 这里一定要return啊 23 24 25 '''下面就是用户登录成功了应该出现的页面''' 26 def index(master): 27 index_frame =tk.Frame(master) 28 index_frame.grid() 29 text=tk.Text(index_frame) 30 text.grid() 31 text.insert('end','没错你登录成功,所以看到了我') 32 33 34 if __name__ == "__main__": 35 top = tk.Tk() 36 login = login(top) 37 try:#因为用户可能直接关闭主窗口,所以我们要捕捉这个错误 38 top.wait_window(window=login)#等待直到login销毁,不销毁后面的语句就不执行 39 index(top) 40 except: 41 pass 42 top.mainloop()