tkinter——登录例子(三)

也在学习中,这些都是在莫烦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`这段详细介绍一下(如代码注释)。
到这里就完成了我们这个注册的主要界面用户名,密码,确认密码。效果图如下:

tkinter——登录例子(三)_第1张图片


## `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!'`效果如图:
tkinter——登录例子(三)_第2张图片


如果用户名已经在我们的数据文件中,则提示`'Error', 'The user has already signed up!'`效果如图:

tkinter——登录例子(三)_第3张图片


注册成功就是我们一开始展示的效果图。
## tkinter最后的谢幕

到此,我们的这个程序已经完善。这里给大家奉上我们最后的实验成果。

tkinter——登录例子(三)_第4张图片




你可能感兴趣的:(tkinter,Python,python,tkinter)