您好,登錄后才能下訂單哦!
這篇文章主要介紹“簡單實現(xiàn)python tkinter制作用戶登錄界面”,在日常操作中,相信很多人在簡單實現(xiàn)python tkinter制作用戶登錄界面問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”簡單實現(xiàn)python tkinter制作用戶登錄界面”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
Python主要應用于:1、Web開發(fā);2、數(shù)據(jù)科學研究;3、網(wǎng)絡爬蟲;4、嵌入式應用開發(fā);5、游戲開發(fā);6、桌面應用開發(fā)。
運行如下:
代碼如下:
# -*- coding: utf-8 -*- """ Created on Sun Aug 5 10:34:10 2018 @author: Administrator """ import tkinter as tk import tkinter.messagebox import pickle #窗口 window=tk.Tk() window.title('歡迎進入學習系統(tǒng)') window.geometry('450x300') #畫布放置圖片 canvas=tk.Canvas(window,height=300,width=500) imagefile=tk.PhotoImage(file='qm.png') image=canvas.create_image(0,0,anchor='nw',image=imagefile) canvas.pack(side='top') #標簽 用戶名密碼 tk.Label(window,text='用戶名:').place(x=100,y=150) tk.Label(window,text='密碼:').place(x=100,y=190) #用戶名輸入框 var_usr_name=tk.StringVar() entry_usr_name=tk.Entry(window,textvariable=var_usr_name) entry_usr_name.place(x=160,y=150) #密碼輸入框 var_usr_pwd=tk.StringVar() entry_usr_pwd=tk.Entry(window,textvariable=var_usr_pwd,show='*') entry_usr_pwd.place(x=160,y=190) #登錄函數(shù) def usr_log_in(): #輸入框獲取用戶名密碼 usr_name=var_usr_name.get() usr_pwd=var_usr_pwd.get() #從本地字典獲取用戶信息,如果沒有則新建本地數(shù)據(jù)庫 try: with open('usr_info.pickle','rb') as usr_file: usrs_info=pickle.load(usr_file) except FileNotFoundError: with open('usr_info.pickle','wb') as usr_file: usrs_info={'admin':'admin'} pickle.dump(usrs_info,usr_file) #判斷用戶名和密碼是否匹配 if usr_name in usrs_info: if usr_pwd == usrs_info[usr_name]: tk.messagebox.showinfo(title='welcome', message='歡迎您:'+usr_name) else: tk.messagebox.showerror(message='密碼錯誤') #用戶名密碼不能為空 elif usr_name=='' or usr_pwd=='' : tk.messagebox.showerror(message='用戶名或密碼為空') #不在數(shù)據(jù)庫中彈出是否注冊的框 else: is_signup=tk.messagebox.askyesno('歡迎','您還沒有注冊,是否現(xiàn)在注冊') if is_signup: usr_sign_up() #注冊函數(shù) def usr_sign_up(): #確認注冊時的相應函數(shù) def signtowcg(): #獲取輸入框內(nèi)的內(nèi)容 nn=new_name.get() np=new_pwd.get() npf=new_pwd_confirm.get() #本地加載已有用戶信息,如果沒有則已有用戶信息為空 try: with open('usr_info.pickle','rb') as usr_file: exist_usr_info=pickle.load(usr_file) except FileNotFoundError: exist_usr_info={} #檢查用戶名存在、密碼為空、密碼前后不一致 if nn in exist_usr_info: tk.messagebox.showerror('錯誤','用戶名已存在') elif np =='' or nn=='': tk.messagebox.showerror('錯誤','用戶名或密碼為空') elif np !=npf: tk.messagebox.showerror('錯誤','密碼前后不一致') #注冊信息沒有問題則將用戶名密碼寫入數(shù)據(jù)庫 else: exist_usr_info[nn]=np with open('usr_info.pickle','wb') as usr_file: pickle.dump(exist_usr_info,usr_file) tk.messagebox.showinfo('歡迎','注冊成功') #注冊成功關閉注冊框 window_sign_up.destroy() #新建注冊界面 window_sign_up=tk.Toplevel(window) window_sign_up.geometry('350x200') window_sign_up.title('注冊') #用戶名變量及標簽、輸入框 new_name=tk.StringVar() tk.Label(window_sign_up,text='用戶名:').place(x=10,y=10) tk.Entry(window_sign_up,textvariable=new_name).place(x=150,y=10) #密碼變量及標簽、輸入框 new_pwd=tk.StringVar() tk.Label(window_sign_up,text='請輸入密碼:').place(x=10,y=50) tk.Entry(window_sign_up,textvariable=new_pwd,show='*').place(x=150,y=50) #重復密碼變量及標簽、輸入框 new_pwd_confirm=tk.StringVar() tk.Label(window_sign_up,text='請再次輸入密碼:').place(x=10,y=90) tk.Entry(window_sign_up,textvariable=new_pwd_confirm,show='*').place(x=150,y=90) #確認注冊按鈕及位置 bt_confirm_sign_up=tk.Button(window_sign_up,text='確認注冊', command=signtowcg) bt_confirm_sign_up.place(x=150,y=130) #退出的函數(shù) def usr_sign_quit(): window.destroy() #登錄 注冊按鈕 bt_login=tk.Button(window,text='登錄',command=usr_log_in) bt_login.place(x=140,y=230) bt_logup=tk.Button(window,text='注冊',command=usr_sign_up) bt_logup.place(x=210,y=230) bt_logquit=tk.Button(window,text='退出',command=usr_sign_quit) bt_logquit.place(x=280,y=230) #主循環(huán) window.mainloop()
到此,關于“簡單實現(xiàn)python tkinter制作用戶登錄界面”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關知識,請繼續(xù)關注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。