python的简单GUI(登录窗口)
程序员文章站
2023-12-11 21:14:58
用到了tkinter包,勾选记忆后用户名和密码会以文件的形式保存在本地磁盘import tkinterimport tkinter.messageboximport osf_path="E://gui.txt"def autoFill(): try: with open(f_path,'r') as fp: name,pwd=fp.read().strip().split(',') varName.set(name)...
用到了tkinter包。
1.勾选记忆后用户名和密码会以文件的形式保存在本地磁盘
2.输入错误三次后关闭
3.密码长度应大于6
import tkinter
import tkinter.messagebox
import os
f_path="E://gui.txt"
def autoFill():
try:
with open(f_path,'r') as fp:
name,pwd=fp.read().strip().split(',')
varName.set(name)
varPwd.set(pwd)
except:
#print("not this file")
pass
def login():
name=entryName.get()
pwd=entryPwd.get()
if name=='zlm' and pwd=='123':
tkinter.messagebox.showinfo(title='Congratulations',
message='Login Success!')
if varRemember.get()==1:
with open(f_path,'w') as fp:
fp.write(','.join([name,pwd]))
else:
try:
os.remove(f_path)
except:
pass
else:
tkinter.messagebox.showerror('Warning', message='username or password is error!')
def cancel():
varName.set('')
varPwd.set('')
root = tkinter.Tk()
root['height'] = 200
root['width'] = 200
#label:username
labelName=tkinter.Label(root,
text='Username:',
justify=tkinter.RIGHT,
anchor='e',
width=80)
labelName.place(x=10,y=5,width=80,height=20)
#label:pwd
labelPwd=tkinter.Label(root,
text='Password:',
justify=tkinter.RIGHT,
anchor='e',
width=80)
labelPwd.place(x=10,y=30,width=80,height=20)
#input:username
varName=tkinter.StringVar(root,value='')
entryName=tkinter.Entry(root,
width=80,
textvariable=varName)
entryName.place(x=100,y=10,width=80,height=20)
#input:pwd
varPwd=tkinter.StringVar(root,value='')
entryPwd=tkinter.Entry(root,
show="*",
width=80,
textvariable=varPwd)
entryPwd.place(x=100,y=30,width=80,height=20)
#check:remember
varRemember=tkinter.IntVar(root,value=0)
checkRemember=tkinter.Checkbutton(root,
text='remember?',
variable=varRemember,
onvalue=1,
offvalue=0)
checkRemember.place(x=30,y=70,width=120,height=20)
#button:login
buttonConfirm=tkinter.Button(root,
text='Login',
activeforeground='red',
command=login)
buttonConfirm.place(x=30,y=100,width=50,height=20)
#button:cancel
buttonCancel=tkinter.Button(root,
text='Cancel',
command=cancel)
buttonCancel.place(x=90,y=100,width=50,height=20)
autoFill()
root.mainloop()
本文地址:https://blog.csdn.net/weixin_43873198/article/details/107056864