Tkinter 简单用户登录注册程序
来源:互联网 发布:java接收json对象数组 编辑:程序博客网 时间:2024/06/05 23:54
在完成python核心编程过程中,第七章第五题要求用Tkinter编写一个简单的GUI界面,完成简单的用户登录注册。查找的过程里现有的代码无法满足要求,收集资料完成了一个简单的。可以作为类似题目的模板。
# encoding=utf-8import timeimport hashlibfrom Tkinter import *import tkMessageBoximport tkMessageBox,tkFileDialogimport platformdb = {}#处理注册def newuser(name,pwd): while True: if db.has_key(name): tkMessageBox.showinfo(title='失败', message='already has this name') continue else: break m = hashlib.md5() m.update(pwd) # print m # print m.hexdigest() db[name] = [m.hexdigest(),time.strftime("%Y %m %d %H %M", time.localtime())] tkMessageBox.showinfo(title='成功', message='注册成功')#处理直接登录def olduser(name,pwd): m = hashlib.md5() m.update(pwd) # print m pwd = m.hexdigest() passwd = db[name][0] if passwd == pwd: tkMessageBox.showinfo(title='成功', message='welcome back'+name) ti = time.strftime("%Y %m %d %H %M", time.localtime()) lis1 = ti.split(' ') lis2 = db[name][1].split(' ') # print lis1 # print lis2 if lis1[0] == lis2[0]: if lis1[1] == lis2[1]: if lis1[2] == lis2[2]: if int(lis1[3])-4<int(lis2[3]): # print 'you alraedy logged in at %s' %db[name][1] tkMessageBox.showinfo(title='成功', message='you already logged in at %s ' % db[name][1]) db[name][1] = ti else: tkMessageBox.showinfo(title='失败', message='登录失败')#删除用户,返回一个提示框def delete(name): del db[name] tkMessageBox.showinfo(title='成功', message='删除:'+name)#展示所有用户,返回提示框def showuser(): string1 = '' for key in db: string1 = string1+key string1 = string1+' '+db[key][0] string1 = string1+'\n' tkMessageBox.showinfo(title='用户信息', message=string1)#处理注册窗口def signin(): win1 = Toplevel() l1 = Label(win1, text="注册") l1.pack() # 这里的side可以赋值为LEFT RTGHT TOP BOTTOM l2 = Label(win1, text="姓名:") l2.pack() # 这里的side可以赋值为LEFT RTGHT TOP BOTTOM sheet_text1 = StringVar() sheet1 = Entry(win1, textvariable=sheet_text1) sheet1.pack() l3 = Label(win1, text="密码:") l3.pack() # 这里的side可以赋值为LEFT RTGHT TOP BOTTOM sheet_text2 = StringVar() sheet2 = Entry(win1, textvariable=sheet_text2) sheet2.pack() def on_click1(): name = sheet_text1.get() pwd = sheet_text2.get() #调用处理新用户窗口 newuser(name,pwd) Button(win1, text="press", command=on_click1).pack()#处理登录窗口def login(): # win1 = Tk.winfo_toplevel(root) #焦点绑定到当前窗口,否则无法获取输入 win1 = Toplevel() l4 = Label(win1, text="登录") l4.pack() # 这里的side可以赋值为LEFT RTGHT TOP BOTTOM l5 = Label(win1, text="姓名:") l5.pack() # 这里的side可以赋值为LEFT RTGHT TOP BOTTOM sheet_text3 = StringVar() sheet3 = Entry(win1, textvariable=sheet_text3) sheet3.pack() l6 = Label(win1, text="密码:") l6.pack() # 这里的side可以赋值为LEFT RTGHT TOP BOTTOM sheet_text4 = StringVar() sheet4 = Entry(win1, textvariable=sheet_text4) sheet4.pack() def on_click2(): name = sheet_text3.get() pwd = sheet_text4.get() olduser(name,pwd) Button(win1, text="press", command=on_click2).pack()#退出程序def quit1(): root.quit()#删除用户窗口def deuser(): win1 = Toplevel() l4 = Label(win1, text="登录") l4.pack() # 这里的side可以赋值为LEFT RTGHT TOP BOTTOM l5 = Label(win1, text="姓名:") l5.pack() # 这里的side可以赋值为LEFT RTGHT TOP BOTTOM sheet_text3 = StringVar() sheet3 = Entry(win1, textvariable=sheet_text3) sheet3.pack() def on_click5(): name = sheet_text3.get() delete(name) Button(win1, text="press", command=on_click5).pack()if __name__ == '__main__': root = Tk() root.title('用户登录窗口') root.geometry('500x400') #分别进入不同的窗口 Button(root, text="注册", command=signin).pack() Button(root, text="登录", command=login).pack() Button(root, text="退出", command=quit1).pack() Button(root, text="所有用户", command=showuser).pack() Button(root, text="删除用户", command=deuser).pack() root.mainloop()
阅读全文
2 0
- Tkinter 简单用户登录注册程序
- 简单用户注册程序
- 简单的用户注册登录
- 简单的用户登录注册
- 简单用户登录程序
- tkinter实现用户登录界面
- Java web----用户注册登录程序
- Python Tkinter 简单登录界面
- Python Tkinter 简单登录界面
- 一个简单的注册/登录程序
- 新手教你学Spring MVC4.0+MyBatis+MySQL5.0实现简单用户注册登录程序(一)
- 新手教你学Spring MVC4.0+MyBatis+MySQL5.0实现简单用户注册登录程序(二)
- 新手教你学Spring MVC4.0+MyBatis+MySQL5.0实现简单用户注册登录程序(三)
- python实现的简单用户注册登录系统
- Python 实现简单的用户注册和登录
- JSP+Servlet实现简单的用户登录注册
- 用户注册登录案例分析以及简单实现
- node.js实现用户登录注册简单示例
- GIT 常用命令
- 百度地图多个途径点规划路线
- Apache Spark源码走读之11 -- sql的解析与执行
- poj-2051-Argus
- 修改AfxMessageBox对话框标题
- Tkinter 简单用户登录注册程序
- Regularization and Bias/Variance
- Vim使用技巧
- 关于touchslider.js滑动切换页面的使用简介--注解版
- 算法系列——Jump Game
- 学习mybatis框架中遇到:org.apache.ibatis.exceptions.PersistenceException: 解决方法
- TCP/IP的四元组 五元组 七元组
- sklearn浅析(七)——Support Vector Machines
- UVa 11683