需求介绍
? 最近,遇到一个需求让我做一个某系统的Python GUI登录界面。需求要求逻辑能面对三种用户登录系统的状态如下:
? 1、若用户名为user1,密码为888时,显示登录成功
? 2、若用户名为user1,密码不为888时,显示密码错误,清空密码的输入框内容
? 3、若用户名不为user1,密码不为888时,显示不存在用户,清空输入用户名和密码的输入框内容
实现界面
主界面
登录成功弹窗
密码输入错误提示弹窗
用户不存在提示弹窗
代码实现
from tkinter import *
from tkinter import messagebox
from PIL import Image, ImageTk
def usr_log_in():
usr_name = var_usr_name.get()
usr_pwd = var_usr_pwd.get()
if usr_name == "user1" and usr_pwd == "888":
login_success ="登录成功"
messagebox.showinfo(root, message=login_success)
elif usr_name == "user1" and usr_pwd != "888":
login_wrong_pwd ="密码错误,请重新输入正确的密码!"
messagebox.showinfo(root, message=login_wrong_pwd)
entry_usr_pwd.delete('0', 'end')
entry_usr_pwd.focus_set()
else:
user_no_exist ="用户不存在!"
messagebox.showinfo(root, message=user_no_exist)
entry_usr_name.delete('0', 'end')
entry_usr_name.focus_set()
entry_usr_pwd.delete('0', 'end')
root = Tk()
root.title("系统登录")
root.geometry("400x300")
img = Image.open('1.jpg')
photo = ImageTk.PhotoImage(img)
Label(root, image=photo).grid(row=0, column=0)
Label(root, text='用户名:').place(x=100, y=120)
Label(root, text='密码:').place(x=100, y=160)
var_usr_name = StringVar()
entry_usr_name = Entry(root, textvariable=var_usr_name,font=("Arial",10))
entry_usr_name.place(x=160, y=120)
var_usr_pwd = StringVar()
entry_usr_pwd = Entry(root, textvariable=var_usr_pwd, font=("Arial",10))
entry_usr_pwd.place(x=160, y=160)
bt_login = Button(root, text='登录', command=usr_log_in)
bt_login.place(x=160, y=230)
root.mainloop()
|