Python登錄系統(tǒng)界面實(shí)現(xiàn)詳解
導(dǎo)言篇
我的python環(huán)境是:python3.6.5
這里我選擇的GUI編程包是:tkinter
tkinker在python2.5以后就是自帶包了,所以我們不需要另外安裝
tkinker相對(duì)與其他python GUI編程的包而已,是相對(duì)容易入手的
代碼篇
這是系統(tǒng)的登錄界面
import tkinter
from tkinter import messagebox
class Login(object):
def __init__(self):
# 創(chuàng)建主窗口,用于容納其它組件
self.root = tkinter.Tk()
# 給主窗口設(shè)置標(biāo)題內(nèi)容
self.root.title("影視資源管理系統(tǒng)(離線版)")
self.root.geometry('450x300')
#運(yùn)行代碼時(shí)記得添加一個(gè)gif圖片文件,不然是會(huì)出錯(cuò)的
self.canvas = tkinter.Canvas(self.root, height=200, width=500)#創(chuàng)建畫布
self.image_file = tkinter.PhotoImage(file='welcome_1.gif')#加載圖片文件
self.image = self.canvas.create_image(0,0, anchor='nw', image=self.image_file)#將圖片置于畫布上
self.canvas.pack(side='top')#放置畫布(為上端)
#創(chuàng)建一個(gè)`label`名為`Account: `
self.label_account = tkinter.Label(self.root, text='Account: ')
#創(chuàng)建一個(gè)`label`名為`Password: `
self.label_password = tkinter.Label(self.root, text='Password: ')
# 創(chuàng)建一個(gè)賬號(hào)輸入框,并設(shè)置尺寸
self.input_account = tkinter.Entry(self.root, width=30)
# 創(chuàng)建一個(gè)密碼輸入框,并設(shè)置尺寸
self.input_password = tkinter.Entry(self.root, show='*', width=30)
# 創(chuàng)建一個(gè)登錄系統(tǒng)的按鈕
self.login_button = tkinter.Button(self.root, command = self.backstage_interface, text = "Login", width=10)
# 創(chuàng)建一個(gè)注冊(cè)系統(tǒng)的按鈕
self.siginUp_button = tkinter.Button(self.root, command = self.siginUp_interface, text = "Sign up", width=10)
# 完成布局
def gui_arrang(self):
self.label_account.place(x=60, y= 170)
self.label_password.place(x=60, y= 195)
self.input_account.place(x=135, y=170)
self.input_password.place(x=135, y=195)
self.login_button.place(x=140, y=235)
self.siginUp_button.place(x=240, y=235)
# 進(jìn)入注冊(cè)界面
def siginUp_interface(self):
# self.root.destroy()
tkinter.messagebox.showinfo(title='影視資源管理系統(tǒng)', message='進(jìn)入注冊(cè)界面')
# 進(jìn)行登錄信息驗(yàn)證
def backstage_interface(self):
account = self.input_account.get().ljust(10," ")
password = self.input_password.get().ljust(10," ")
#對(duì)賬戶信息進(jìn)行驗(yàn)證,普通用戶返回user,管理員返回master,賬戶錯(cuò)誤返回noAccount,密碼錯(cuò)誤返回noPassword
verifyResult = verifyAccount.verifyAccountData(account,password)
if verifyResult=='master':
self.root.destroy()
tkinter.messagebox.showinfo(title='影視資源管理系統(tǒng)', message='進(jìn)入管理界面')
elif verifyResult=='user':
self.root.destroy()
tkinter.messagebox.showinfo(title='影視資源管理系統(tǒng)', message='進(jìn)入用戶界面')
elif verifyResult=='noAccount':
tkinter.messagebox.showinfo(title='影視資源管理系統(tǒng)', message='該賬號(hào)不存在請(qǐng)重新輸入!')
elif verifyResult=='noPassword':
tkinter.messagebox.showinfo(title='影視資源管理系統(tǒng)', message='賬號(hào)/密碼錯(cuò)誤請(qǐng)重新輸入!')
def main():
# 初始化對(duì)象
L = Login()
# 進(jìn)行布局
L.gui_arrang()
# 主程序執(zhí)行
tkinter.mainloop()
if __name__ == '__main__':
main()
效果篇

語(yǔ)法介紹
環(huán)境配置:
Python3.6.5,前往官網(wǎng)下載
tkinker包:Python2.5之后,tkinker包是自帶的,我們直接導(dǎo)入就好了
基本語(yǔ)法:
self.root = tkinter.Tk()
創(chuàng)建一個(gè)窗口對(duì)象root,root前面的self.是面向?qū)ο罄锩娴膬?nèi)容,不明白的童鞋可以去Google一下面向?qū)ο?/p>
self.root.title("影視資源管理系統(tǒng)(離線版)")
self.root.geometry('450x300')
給窗口root設(shè)置標(biāo)題,并設(shè)置窗口
self.canvas = tkinter.Canvas(self.root, height=200, width=500)#創(chuàng)建畫布 self.image_file = tkinter.PhotoImage(file='welcome_1.gif')#加載圖片文件 self.image = self.canvas.create_image(0,0, anchor='nw', image=self.image_file)#將圖片置于畫布上 self.canvas.pack(side='top')#放置畫布(為上端)
如果我們需要讓自己的界面在美觀上加分,大可以試試創(chuàng)建一個(gè)畫布,也就是下面這個(gè)東西

我這里是先對(duì)圖片背景進(jìn)行了透明化處理,需要的小伙伴可以去這里 對(duì)圖片進(jìn)行處理,個(gè)人覺得這個(gè)網(wǎng)站還是不錯(cuò)的
#創(chuàng)建一個(gè)`label`名為`Account: ` self.label_account = tkinter.Label(self.root, text='Account: ') #創(chuàng)建一個(gè)`label`名為`Password: ` self.label_password = tkinter.Label(self.root, text='Password: ')
這里創(chuàng)建的是一個(gè)label,label是什么不明白可以參考上面貼圖的“Account:”與“Password:”
.Label(A, B):參數(shù)A代表Lable依賴窗口,參數(shù)B即用戶可見的Lable的名字了(text="LableName")
.Button(A, B, text='', [width='', height='']):參數(shù)A是按鈕依賴的窗口主體,參數(shù)B是按鈕的相應(yīng)事件(command = self.siginUp_interface)這里的響應(yīng)事件的進(jìn)行注冊(cè)/登錄進(jìn)入后臺(tái),command后接響應(yīng)函數(shù)。
.Entry(A):輸入框,參照前面的.Label(),有疑問的可以在下方留言
.place(x="", y=""):這個(gè)是設(shè)置窗口部件的函數(shù)
額。。。。登錄界面就介紹到這里了,后面我會(huì)繼續(xù)更新登錄界面的響應(yīng)機(jī)制,有不明的地方可以在下方留言,我看到會(huì)回復(fù)的
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Windows系統(tǒng)Python直接調(diào)用C++ DLL的方法
- python3+django2開發(fā)一個(gè)簡(jiǎn)單的人員管理系統(tǒng)過程詳解
- 在linux系統(tǒng)下安裝python librtmp包的實(shí)現(xiàn)方法
- Python實(shí)現(xiàn)獲取系統(tǒng)臨時(shí)目錄及臨時(shí)文件的方法示例
- python面向?qū)ο蠓▽?shí)現(xiàn)圖書管理系統(tǒng)
- Python實(shí)現(xiàn)的銀行系統(tǒng)模擬程序完整案例
- 如何用Python來搭建一個(gè)簡(jiǎn)單的推薦系統(tǒng)
相關(guān)文章
Python實(shí)現(xiàn)http接口自動(dòng)化測(cè)試的示例代碼
這篇文章主要介紹了Python實(shí)現(xiàn)http接口自動(dòng)化測(cè)試的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10
python+JS?實(shí)現(xiàn)逆向?SMZDM?的登錄加密
這篇文章主要介紹了python+JS?實(shí)現(xiàn)逆向?SMZDM?的登錄加密,文章通過利用SMZDM平臺(tái)展開詳細(xì)的內(nèi)容介紹,需要的小伙伴可以參考一下2022-05-05
Python多線程編程(八):使用Event實(shí)現(xiàn)線程間通信
這篇文章主要介紹了Python多線程編程(八):使用Event實(shí)現(xiàn)線程間通信,,需要的朋友可以參考下2015-04-04
python多項(xiàng)式擬合之np.polyfit 和 np.polyld詳解
這篇文章主要介紹了python多項(xiàng)式擬合之np.polyfit 和 np.polyld的實(shí)例代碼,python數(shù)據(jù)擬合主要可采用numpy庫(kù),庫(kù)的安裝可直接用pip install numpy等,需要的朋友跟隨小編一起學(xué)習(xí)吧2020-02-02
Anconda環(huán)境下Vscode安裝Python的方法詳解
anaconda指的是一個(gè)開源的Python發(fā)行版本,其包含了conda、Python等180多個(gè)科學(xué)包及其依賴項(xiàng)。這篇文章主要介紹了Anconda環(huán)境下Vscode安裝Python的方法,需要的朋友可以參考下2020-03-03
利用Python?爬取股票實(shí)時(shí)數(shù)據(jù)詳情
這篇文章主要介紹了利用Python?爬取股票實(shí)時(shí)數(shù)據(jù)詳情,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下2022-08-08

