Entry控制項的作用是在鍵盤輸入的文字訊息,它的語法格式如下:
my_entry=Entry(容器,可選項)
容器即內容放入的位置,可選項和上一節我們學習提到的Button中的可選項類似, 可選擇的有:
刪除first-last中的所有內容,如果使用delete(0,END)則刪除輸入框的所有內容。
取得輸入框內的所有內容。
移動遊標到index參數的位置。
傳回index參數對應的序號。
把text參數中的內容插入到索引為index的位置。
清空文字方塊。
設定文字方塊連結的水平捲軸。
我們透過實例來使用一下Entry控制項。
importtkinterwin=tkinter.Tk()Frame_one=tkinter.Frame(win)#先建立一個容器放上面存放登入Frame_one.pack(side='top')Frame_two=tkinter.Frame(win)#再建立一個容器放中間存放密碼Frame_two.pack()Frame_three=tkinter.Frame(win)#再建立一個容器在下面存放按鈕Frame_three.pack(side='bottom')Label_one=tkinter.Label(Frame_one,text='姓名:')Lable_two=tkinter.Label(Frame_two,text='密碼:')Entry_one=tkinter.Entry(Frame_one, bd=5)Entry_two=tkinter.Entry(Frame_two,b d=5)Button_one=tkinter.Button(Frame_three,text='登入',activeforeground='red',activebackground='yellow',width='7')Button_one.pack(side='left')Button_two=tkinter. Button(Frame_three,text='註冊',activeforegr ound='blue',activebackground='pink',width='7')Button_two.pack(side='right')Label_one.pack(side='left')Entry_one.pack(side='right')Lable_two. pack(side='left')Entry_two.pack(side='right')win.mainloop()
輸出結果為:
我們首先在視窗中放置了三個容器,從上到下依序存放姓名、密碼和按鈕,然後再姓名後面放一個Entry控件,供我們輸入姓名,在密碼對應的後面放一個Enrty控件來輸入密碼,最後在下面放兩個按鈕分別提供登入和註冊,最後我們把他們的位置放在左右一一對應。
我們再透過函數的綁定來測試登入資訊。
importtkinterastkimporttkinter.messageboxwin=tk.Tk()frame_name=tk.Frame(win)#建立容器來存放登陸的Label(文字方塊)與Entry(輸入框)frame_name.pack(side=top)#使該容器在頁面的頂部label_name=tk.Label(frame_nam e,text=YourName:)label_name.pack(side=left)entry_name=tk.Entry(frame_name,bd=5)entry_name.pack(side=right)#在容器內建立Label與Entry,並使label在左, entry在右#下面的同理:frame_password=tk.Frame(w in)frame_password.pack()label_password=tk.Label(frame_password,text=YourPassword:)label_password.pack(side=left)entry_password=tk.Entry(frame_password,bd=5)entry_password.pac k(side=right)deflogin():ifentry_name.get()==qy:ifentry_password.get()==dotcpp:print(tkinter.messagebox.showinfo(login,Success!))else:print(tkinter.messagebox. showerror(login, Failed!))entry_name.delete(0,end)entry_password.delete(0,end)else:print(tkinter.messagebox.showerror(login,Failed!))entry_name.delete(0,end)entry_password.delete(0, end)defsi gnin():print(tkinter.messagebox.showerror(signin,WithoutCode!))#必須先定義函數,否則點擊按鈕呼叫函數時會報函式不存在的錯誤frame_button=tk.Frame(win)#建立容器以存放按鈕frame_button.pack(side=bottom)#使該容器位於頁面最下方but ton_login=tk.Button(frame_button,text=login,activeforeground=red,activebackground=yellow,width=7,command=login#command的意思是執行已定義的函數,不可執行下文中出現的函數(未定義的函數))button_login.pack(side =left)#下面的同理:button_signin=tk.Button(frame_button,text=signin,activeforeground=blue,activebackground=pink,width=7,command=signin,)button_signin.pack(side=right)win.mainloop( )
輸出的介面為:
當我們輸入qy和dotcpp時如下:
若輸入其他內容顯示如下: