也在学习中,这些都是在莫烦python做志愿者写下的。~
本节就是对以上学习的总结,也是我们大家自己做一个小小项目的尝试~一共三篇。
## `usr_sign_up`界面
window_sign_up = tk.Toplevel(window)
window_sign_up.geometry('350x200')
window_sign_up.title('Sign up window')
这一段首先是创建一个注册的窗口。这里和以往不同的是,多了一个`tk.Toplevel`我们打个比方,就好像我们前面所学
的`frame`一样,就是在编辑的功能下还有很多功能一样,这里就是在主体窗口的`window`上创建一个`Sign up window`窗口。
new_name = tk.StringVar()#将输入的注册名赋值给变量
new_name.set('
[email protected]')#将最初显示定为'
[email protected]'
tk.Label(window_sign_up, text='User name: ').place(x=10, y= 10)#将`User name:`放置在坐标(10,10)。
entry_new_name = tk.Entry(window_sign_up, textvariable=new_name)#创建一个注册名的`entry`,变量为`new_name`
entry_new_name.place(x=150, y=10)#`entry`放置在坐标(150,10).
new_pwd = tk.StringVar()
tk.Label(window_sign_up, text='Password: ').place(x=10, y=50)
entry_usr_pwd = tk.Entry(window_sign_up, textvariable=new_pwd, show='*')
entry_usr_pwd.place(x=150, y=50)
new_pwd_confirm = tk.StringVar()
tk.Label(window_sign_up, text='Confirm password: ').place(x=10, y= 90)
entry_usr_pwd_confirm = tk.Entry(window_sign_up, textvariable=new_pwd_confirm, show='*')
entry_usr_pwd_confirm.place(x=150, y=90)
btn_comfirm_sign_up = tk.Button(window_sign_up, text='Sign up', command=sign_to_Mofan_Python)
btn_comfirm_sign_up.place(x=150, y=130)
相信大家对这一段代码已经很熟悉了,因为这是大家前面所学过的知识。其实就是像我们平时所见的注册窗口有一样,在`Sign up window`窗口
上添加`new_name`,` new_pwd`, `new_pwd_confirm`,还有最后一个注册按钮。,这里便于大家复习,我们将`new_name`这段详细介绍一下(如代码注释)。
到这里就完成了我们这个注册的主要界面用户名,密码,确认密码。效果图如下:
## `usr_sign_up`触发功能
def usr_sign_up():
def sign_to_Mofan_Python():
##以下三行就是获取我们注册时所输入的信息
np = new_pwd.get()
npf = new_pwd_confirm.get()
nn = new_name.get()
##这里是打开我们记录数据的文件,将注册信息写入
with open('usrs_info.pickle', 'rb') as usr_file:
exist_usr_info = pickle.load(usr_file)
##这里就是判断,如果两次密码输入不一致,则提示`'Error', 'Password and confirm password must be the same!'`
if np != npf:
tk.messagebox.showerror('Error', 'Password and confirm password must be the same!')
##如果用户名已经在我们的数据文件中,则提示`'Error', 'The user has already signed up!'`
elif nn in exist_usr_info:
tk.messagebox.showerror('Error', 'The user has already signed up!')
##最后如果输入无以上错误,则将注册输入的信息记录到文件当中,并提示注册成功`'Welcome', 'You have successfully signed up!'`
##然后销毁窗口。
else:
exist_usr_info[nn] = np
with open('usrs_info.pickle', 'wb') as usr_file:
pickle.dump(exist_usr_info, usr_file)
tk.messagebox.showinfo('Welcome', 'You have successfully signed up!')
##然后销毁窗口。
window_sign_up.destroy()
这里其实和前面所讲的`login`功能类似,如代码注释。
如果两次密码输入不一致,则提示`'Error', 'Password and confirm password must be the same!'`效果如图:
如果用户名已经在我们的数据文件中,则提示`'Error', 'The user has already signed up!'`效果如图:
注册成功就是我们一开始展示的效果图。
## tkinter最后的谢幕
到此,我们的这个程序已经完善。这里给大家奉上我们最后的实验成果。