作者:煙獨享寂寞 | 来源:互联网 | 2023-09-14 18:48
这篇文章给大家分享的是有关Python+tkinter如何实现“记住我”自动登录功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
具体介绍如下。
基本思路:如果某次登录成功,则创建临时文件记录有关信息,每次启动程序时尝试自动获取上次登录成功的信息并自动编写。本文主要演示思路,可根据实际系统中的需要进行改写,例如读取数据库并验证用户名和密码是否正确、对用户名和密码进行本地加密存储等等。
import tkinter
import tkinter.messagebox
import os
import os.path
# 获取Windows平台临时文件夹
path = os.getenv('temp')
filename = os.path.join(path, 'info.txt')
# 创建应用程序窗口
root = tkinter.Tk()
# 在窗口上创建标签组件
labelName = tkinter.Label(root,text='User Name:',justify=tkinter.RIGHT,width=80)
labelName.place(x=10, y=5, width=80, height=20)
# 创建字符串变量和文本框组件,同时设置关联的变量
varName = tkinter.StringVar(root, value='')
entryName = tkinter.Entry(root,width=80,textvariable=varName)
entryName.place(x=100, y=5, width=80, height=20)
labelPwd = tkinter.Label(root,text='User Pwd:',justify=tkinter.RIGHT,width=80)
labelPwd.place(x=10, y=30, width=80, height=20)
# 创建密码文本框
varPwd = tkinter.StringVar(root, value='')
entryPwd = tkinter.Entry(root,show='*',width=80,textvariable=varPwd)
entryPwd.place(x=100, y=30, width=80, height=20)
# 尝试自动填写用户名和密码
try:
with open(filename) as fp:
n, p = fp.read().strip().split(',')
varName.set(n)
varPwd.set(p)
except:
pass
# 登录按钮事件处理函数
def login():
# 获取用户名和密码
name = entryName.get()
pwd = entryPwd.get()
if name=='admin'and pwd=='123456':
tkinter.messagebox.showinfo(title='恭喜',message='登录成功!')
# 把登录成功的信息写入临时文件
with open(filename, 'w') as fp:
fp.write(','.join((name,pwd)))
else:
tkinter.messagebox.showerror('警告',message='用户名或密码错误')
# 创建按钮组件,同时设置按钮事件处理函数
buttonOk = tkinter.Button(root,
text='Login',
command=login)
buttonOk.place(x=30, y=70, width=50, height=20)
# 取消按钮的事件处理函数
def cancel():
#清空用户输入的用户名和密码
varName.set('')
varPwd.set('')
buttonCancel = tkinter.Button(root,
text='Cancel',command=cancel)
buttonCancel.place(x=90, y=70, width=50, height=20)
#启动消息循环
root.mainloop()
演示结果:
感谢各位的阅读!关于“Python+tkinter如何实现“记住我”自动登录功能”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!