#登录窗口
初次接触tkinter,学习python语法知识太过于枯燥,就简单的加入了这个内置模块(基于python3.8),这个是个人练习,本人不是计算机专业的,代码存在问题(验证匹配时存在bug,账户和密码不对应时(user_info已存在的)也登录成功,对应的账户和密码登录成功,希望大佬们指点,最近忙于备考,考完一定修改代码,本文的目的还是面向python初学者简单介绍tkinter),勿喷!!!
import tkinter as tk
import tkinter.messagebox
user_info = {"张三": 'a123', "李四": 'b1234', "王五": 'c12345', "赵六": 'd123456'}//这里只是简单演示,所以用字典保存用户数据
def user_register():
tkinter.messagebox.askokcancel('提示', 'function not finish,please wait !!!')
def user_login():
"""存在一个问题:只能检查第一个账户是否匹配"""
# 从输入框获取用户名和密码
user_name = var_user_name.get()
user_psw = var_user_psw.get()
# 判断账户和密码是否匹配
if user_name == "" or user_psw == "":
tkinter.messagebox.askokcancel('提示', '账号或者密码为空,请输入')
else:
for name in user_info.keys():
if user_name == name:
for psw in user_info.values():
if user_psw == psw:
flag = 1
break
else:
flag = 2
break
else:
flag = 0
if flag == 0 or flag == 2:
tk.messagebox.showinfo(title='提示', message='账户或者密码错误,请仔细核对!')
elif flag == 1:
tk.messagebox.showinfo(title='提示', message='登录成功')
# 初始化一个根窗口
window1 = tk.Tk()
window1.title("登录 v 0.1")
window1.geometry('400x200')
# 账号和密码输入
var_user_name = tk.StringVar()
l1 = tk.Label(window1, text='账号', fg='black', font=('微软雅黑', 11), width=4, relief="raised", )
l1.place(x=100, y=30)
e1 = tk.Entry(window1, show='', bg='white', font=('Arial', 12), width=14, textvariable=var_user_name)
e1.place(x=160, y=30)
var_user_psw = tk.StringVar()
l2 = tk.Label(window1, text='密码', fg='black', font=('微软雅黑', 11), width=4, relief="raised")
l2.place(x=100, y=80)
e2 = tk.Entry(window1, show='*', bg='white', font=('Arial', 12), width=14, textvariable=var_user_psw)
e2.place(x=160, y=80)
# 按钮定义
b1 = tk.Button(window1, text='注册', width=8, command=user_register)
b1.place(x=98, y=140)
b2 = tk.Button(window1, text='登录', width=8, command=user_login)
b2.place(x=226, y=140)
# 主窗口循环
亲,记得点赞哦