import tkinter as tk
import tkinter.messagebox
import pickle
__author__ = 'lichen'
# 可以在这里预先写入初始数据
# f = open('user_info.dat', 'wb')
# info = {"admin": ["admin", "123", '22', "男", "15102707777", '0']}
# pickle.dump(info, f)
# f.close()
# 打开文件,获取字典
# 注意:读取文件为空,也会导致异常
myf = open('user_info.dat', 'rb')
users_dict = pickle.load(myf)
myf.close()
cur_user = None
# role=1 只能查看信息
# role=0 增删改查所有人信息
window = tk.Tk()
window.title('信息管理系统')
window.geometry('400x300') # 设置尺寸400*300像素
# login:
# 标签:
label1 = tk.Label(window, text='用户名', bd=5) # 设置边框宽度
label2 = tk.Label(window, text='密码', bd=5)
# Entry获取输入
user_input = tk.StringVar()
password_input = tk.StringVar()
userE = tk.Entry(window, textvariable=user_input)
passwordE = tk.Entry(window, textvariable=password_input)
# 登录按钮
login_button = tk.Button(window, text='登录', command=lambda: login())
register_button = tk.Button(window, text='注册', command=lambda: toRigister())
counter = 0 # 记录登录错误次数
def login():
# 获取用户名和密码
u = user_input.get()
p = password_input.get()
u = u.lstrip()
u = u.rstrip()
p = p.lstrip()
p = p.rstrip()
global counter
global cur_user
if u in users_dict.keys():
if p == users_dict[u][1]:
tk.messagebox.showinfo('登录成功', f'欢迎{u}回来!')
cur_user = u
counter = 0
# 隐藏相关控件
login_Frame_forget()
if users_dict[u][5] == '0':
role0_Frame()
else:
role1_Frame()
else:
tk.messagebox.showwarning(message='密码错误')
counter += 1
else:
tk.messagebox.showwarning(message='用户名错误')
counter += 1
user_input.set('')
password_input.set('')
if counter == 3:
tk.messagebox.showwarning(message='连续三次登录错误')
window.quit() # 关闭
def toRigister():
# 进入注册界面
login_Frame_forget()
register_Frame()
# 注册功能
# 标签
rlabel1 = tk.Label(window, text=
python使用tkinter创造简单的信息管理系统及pickle文件的读取
最新推荐文章于 2024-08-23 09:38:19 发布
本文介绍了如何使用Python的tkinter库创建一个简单的信息管理系统,并结合pickle模块进行数据的读取和存储,实现数据的持久化。通过图形用户界面,用户可以方便地添加、查看和编辑信息。
摘要由CSDN通过智能技术生成