python的簡單GUI(登錄窗口)

用到了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()

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章