使用python的tkinter模块实现的GUI版用户登录程序(附源码)


目录


界面展示

在登录界面,用户可以选择直接登录,也可以选择注册账号

使用python的tkinter模块实现的GUI版用户登录程序(附源码)


用户登录

登录时,如果用户名不存在,会询问是否注册,如果用户名存在并且密码正确,则登录成功


用户名不存在

使用python的tkinter模块实现的GUI版用户登录程序(附源码)


密码错误

使用python的tkinter模块实现的GUI版用户登录程序(附源码)


登录成功

使用python的tkinter模块实现的GUI版用户登录程序(附源码)
使用python的tkinter模块实现的GUI版用户登录程序(附源码)


用户注册

用户注册时,需要用户输入用户名,密码,和再次确认的密码,当两次输入的密码相同时才能成功注册,在注册时,用户也可以取消注册


密码输入不一致

使用python的tkinter模块实现的GUI版用户登录程序(附源码)


注册成功

使用python的tkinter模块实现的GUI版用户登录程序(附源码)


取消注册

使用python的tkinter模块实现的GUI版用户登录程序(附源码)


源代码


每个部分都分成了一块,每个部分的功能都用注解标注了,可以对比功能看一下代码

import tkinter as tkfrom tkinter import messageboxfrom PIL import ImageTk# 存储注册成功用户名及密码success = []# 主窗口window = tk.Tk()window.title("Please Log In")window.geometry("900x660")# 背景画布canvas = tk.Canvas(window,width=900,height=500)image_file = ImageTk.PhotoImage(file="title2.jpg")image = canvas.create_image(0,0,anchor="nw",image=image_file)canvas.pack()# 用户名,用户密码文本name_lable = tk.Label(window,text="UserName:",font=(15))password_lable = tk.Label(window,text="Password:",font=(15))name_lable.place(x=300,y=510)password_lable.place(x=300,y=550)# 用户名,用户密码输入框nameval = tk.StringVar()passwordval = tk.StringVar()name_entry = tk.Entry(window,textvariable=nameval,font=(12))password_entry = tk.Entry(window,textvariable=passwordval,show="*",font=(12))name_entry.place(x=400,y=515)password_entry.place(x=400,y=555)# 登录按钮触发函数def sign_in_f():user_si_name = name_entry.get()user_si_pass = password_entry.get()if user_si_name in success:i = success.index(user_si_name)if success[i+1] == user_si_pass:tk.messagebox.showinfo(title="登录提示",message="登录成功")else:tk.messagebox.showinfo(title="登录提示",message="密码错误")else:result = tk.messagebox.askquestion(title="登录提示",message="用户名不存在,是否立即注册?")if result == "yes":sign_up_f()else:pass# 注册按钮触发函数def sign_up_f():# 用户注册界面singn_up_w = tk.Tk()singn_up_w.title("用户注册")singn_up_w.geometry("600x400")# 拥护注册 用户名,密码,确认密码文本su_name_lable = tk.Label(singn_up_w,text="UserName:",font=(12))su_pass_lable = tk.Label(singn_up_w,text="Password:",font=(12))su_cpass_lable = tk.Label(singn_up_w,text="Confirm Password:",font=(12))su_name_lable.place(x=95,y=50)su_pass_lable.place(x=95,y=150)su_cpass_lable.place(x=95,y=250)# 用户注册 用户名,密码,确认密码输入框su_name_val = tk.StringVar()su_pass_val = tk.StringVar()su_cpass_val = tk.StringVar()su_name_entry = tk.Entry(singn_up_w,textvariable=su_name_val,width=20,font=(12))su_pass_entry = tk.Entry(singn_up_w,textvariable=su_pass_val,width=20,show="*",font=(12))su_cpass_entry = tk.Entry(singn_up_w,textvariable=su_cpass_val,width=20,show="*",font=(12))su_name_entry.place(x=270,y=50)su_pass_entry.place(x=270,y=150)su_cpass_entry.place(x=270,y=250)# 用户在注册页面点击注册按钮触发的函数def su_conf_b():su_username = su_name_entry.get()su_userpass = su_pass_entry.get()su_usercpass = su_cpass_entry.get()if su_userpass == su_usercpass:tk.messagebox.showinfo(title="注册提示",message="注册成功,请登录")success.append(su_username)success.append(su_userpass)singn_up_w.destroy()else:tk.messagebox.showinfo(title="注册提示",message="两次输入的密码不同,请重新输入")# 用户在注册页面点击取消按钮触发的函数def su_cancel_b():result = tk.messagebox.askquestion(title="放弃注册",message="你真的要放弃注册吗?")if result == "yes":singn_up_w.destroy()else:pass# 用户注册 注册,取消按钮su_confirm_button = tk.Button(singn_up_w,text="Sign up",command=su_conf_b)su_cancle_button = tk.Button(singn_up_w,text="Cancel",command=su_cancel_b)su_confirm_button.place(x=170,y=330)su_cancle_button.place(x=370,y=330)# 登录,注册按钮sign_in_button = tk.Button(window,text="Sing in",command=sign_in_f)sign_up_button = tk.Button(window,text="Sign up",command=sign_up_f)sign_in_button.place(x=350,y=600)sign_up_button.place(x=470,y=600)window.mainloop()
上一篇:20192103刘廷奇 实验二《Python程序设计》实验报告


下一篇:Python之tkinter 容器控件的基本应用