Board logo

標題: 圖形介面 (七) - 身分驗證 [打印本頁]

作者: tonyh    時間: 2023-7-20 16:07     標題: 圖形介面 (七) - 身分驗證

本帖最後由 tonyh 於 2023-7-20 17:05 編輯



   

方法一:使用動態文字變數
  1. import tkinter as tk
  2. import tkinter.messagebox as tmbox

  3. def check():
  4.     if name.get()=="Tony" and pw.get()=="456789":
  5.         tmbox.showinfo(title="驗證結果",message="您好,{}!".format(name.get()))
  6.     else:
  7.         tmbox.showerror(title="驗證結果",message="驗證失敗!")
  8.         
  9. def clear():
  10.     name.set("")
  11.     pw.set("")

  12. win=tk.Tk()
  13. win.title("身份驗證")
  14. win.resizable(0,0)

  15. name=tk.StringVar()
  16. pw=tk.StringVar()

  17. fm=tk.Frame(win)
  18. lb=tk.Label(fm, text="來訪者:",width=7, anchor="e").pack(side="left")
  19. et=tk.Entry(fm, textvariable=name).pack(side="left", padx=10, pady=10)
  20. fm.pack()

  21. fm=tk.Frame(win)
  22. lb=tk.Label(fm, text="密碼:", width=7, anchor="e").pack(side="left")
  23. et=tk.Entry(fm, textvariable=pw, show="*").pack(side="left", padx=10)
  24. fm.pack()

  25. fm=tk.Frame(win)
  26. btn=tk.Button(fm, text="確定", width=12, bg="#CCEEFF", command=check).pack(side="left", padx=5, pady=20)
  27. btn=tk.Button(fm, text="清除", width=12, bg="#CCEEFF", command=clear).pack(side="left", padx=5, pady=20)
  28. fm.pack()

  29. win.mainloop()
複製代碼
屬性                說明
-----------------------------------------------------
textvariable    設定動態文字變數
command       設定使用者觸發事件時要執行的函式

方法二:使用 get()、delete()、insert()
  1. import tkinter as tk
  2. import tkinter.messagebox as tmbox

  3. def check():
  4.     if et1.get()=="Tony" and et2.get()=="456789":
  5.         tmbox.showinfo(title="驗證結果",message="您好,{}!".format(et1.get()))
  6.     else:
  7.         tmbox.showerror(title="驗證結果",message="驗證失敗!")

  8. def clear():
  9.     et1.delete(0, tk.END)
  10.     et2.delete(0, tk.END)
  11.     #et1.insert(0, "hello")

  12. win=tk.Tk()
  13. win.title("身份驗證")
  14. win.resizable(0,0)

  15. fm=tk.Frame(win)
  16. lb=tk.Label(fm, text="來訪者:",width=7, anchor="e").pack(side="left")
  17. et1=tk.Entry(fm)
  18. et1.pack(side="left", padx=10, pady=10)
  19. fm.pack()

  20. fm=tk.Frame(win)
  21. lb=tk.Label(fm, text="密碼:", width=7, anchor="e").pack(side="left")
  22. et2=tk.Entry(fm, show="*")
  23. et2.pack(side="left", padx=10)
  24. fm.pack()

  25. fm=tk.Frame(win)
  26. btn=tk.Button(fm, text="確定", width=12, bg="#CCEEFF", command=check).pack(side="left", padx=5, pady=20)
  27. btn=tk.Button(fm, text="清除", width=12, bg="#CCEEFF", command=clear).pack(side="left", padx=5, pady=20)
  28. fm.pack()

  29. win.mainloop()
複製代碼
函式                        說明
------------------------------------
get()                      取得屬性值
delete(first,last)      刪除屬性值
insert(index,string)  插入屬性值
作者: 王捷恩    時間: 2023-7-20 16:53

  1. import tkinter as tk
  2. import tkinter.messagebox as tmbox

  3. def check():
  4.     if name.get()=="yes" and pw.get()=="123":
  5.         tmbox.showinfo(title="驗證結果",message="您好,{}!".format(name.get()))
  6.     else:
  7.         tmbox.showerror(title="驗證結果",message="驗證失敗!")
  8.         
  9. def clear():
  10.     name.set("")
  11.     pw.set("")

  12. win=tk.Tk()
  13. win.title("身份驗證")
  14. win.resizable(0,0)

  15. name=tk.StringVar()
  16. pw=tk.StringVar()

  17. fm=tk.Frame(win)
  18. lb=tk.Label(fm, text="來訪者:",width=7, anchor="e").pack(side="left")
  19. et=tk.Entry(fm, textvariable=name).pack(side="left", padx=10, pady=10)
  20. fm.pack()

  21. fm=tk.Frame(win)
  22. lb=tk.Label(fm, text="密碼:", width=7, anchor="e").pack(side="left")
  23. et=tk.Entry(fm, textvariable=pw, show="*").pack(side="left", padx=10)
  24. fm.pack()

  25. fm=tk.Frame(win)
  26. btn=tk.Button(fm, text="確定", width=12, bg="#CCEEFF", command=check).pack(side="left", padx=5, pady=20)
  27. btn=tk.Button(fm, text="清除", width=12, bg="#CCEEFF", command=clear).pack(side="left", padx=5, pady=20)
  28. fm.pack()

  29. win.mainloop()
複製代碼
  1. import tkinter as tk
  2. import tkinter.messagebox as tmbox

  3. win=tk.Tk()
  4. win.title("身份驗證")
  5. win.resizable(0,0)

  6. fm=tk.Frame(win)
  7. lb=tk.Label(fm, text="來訪者:",width=7, anchor="e").pack(side="left")
  8. et1=tk.Entry(fm)
  9. et1.pack(side="left", padx=10, pady=10)
  10. fm.pack()

  11. fm=tk.Frame(win)
  12. lb=tk.Label(fm, text="密碼:", width=7, anchor="e").pack(side="left")
  13. et2=tk.Entry(fm, show="*")
  14. et2.pack(side="left", padx=10)
  15. fm.pack()

  16. def check():
  17.     if et1.get()=="yes" and et2.get()=="123":
  18.         tmbox.showinfo(title="驗證結果",message="您好,{}!".format(et1.get()))
  19.     else:
  20.         tmbox.showerror(title="驗證結果",message="驗證失敗!")
  21.         
  22. def clear():
  23.     et1.delete(0, tk.END)
  24.     et2.delete(0, tk.END)

  25. fm=tk.Frame(win)
  26. btn=tk.Button(fm, text="確定", width=12, bg="#CCEEFF", command=check).pack(side="left", padx=5, pady=20)
  27. btn=tk.Button(fm, text="清除", width=12, bg="#CCEEFF", command=clear).pack(side="left", padx=5, pady=20)
  28. fm.pack()

  29. win.mainloop()
複製代碼

作者: 李沛昂    時間: 2023-7-20 16:55

  1. import tkinter as tk
  2. import tkinter.messagebox as tmbox
  3. def check():
  4.     if name.get()=="Tony" and pw.get()=="1234567":
  5.         tmbox.showinfo(title="驗證結果",message="您好,{}!".format(name.get()))
  6.     else:
  7.         tmbox.showerror(title="驗證結果",message="驗證失敗!")
  8. def clear():
  9.     name.set("")
  10.     pw.set("")
  11.    
  12. win=tk.Tk();
  13. win.title("身分驗證")
  14. win.resizable(0,0)
  15. name=tk.StringVar()
  16. pw=tk.StringVar()
  17. fm=tk.Frame(win)
  18. lb=tk.Label(fm,text="來訪者",width=7,anchor="e").pack(side="left")
  19. dt=tk.Entry(fm,textvariable=name).pack(side="left",padx=10,pady=10)
  20. fm.pack()
  21. fm=tk.Frame(win)
  22. lb=tk.Label(fm,text="密碼",width=7,anchor="e").pack(side="left")
  23. dt=tk.Entry(fm,textvariable=pw,show="*").pack(side="left",padx=10,pady=10)
  24. fm.pack()
  25. fm=tk.Frame(win)
  26. btn=tk.Button(fm,text="確定",width=12,bg="#CCEEFF",command=check).pack(side="left",padx=5,pady=20)
  27. btn=tk.Button(fm,text="清除",width=12,bg="#CCEEFF",command=clear).pack(side="left",padx=5,pady=20)
  28. fm.pack()
  29. win.mainloop()
複製代碼

作者: 李沛昂    時間: 2023-7-20 17:10

  1. import tkinter as tk
  2. import tkinter.messagebox as tmbox
  3. def check():
  4.     if et1.get()=="Tony" and et2.get()=="1234567":
  5.         tmbox.showinfo(title="驗證結果",message="您好,{}!".format(et1.get()))
  6.     else:
  7.         tmbox.showerror(title="驗證結果",message="驗證失敗!")
  8. def clear():
  9.     et1.delete(0, tk.END)
  10.     et2.delete(0, tk.END)
  11. win=tk.Tk();
  12. win.title("身分驗證")
  13. win.resizable(0,0)
  14. name=tk.StringVar()
  15. pw=tk.StringVar()
  16. fm=tk.Frame(win)
  17. lb=tk.Label(fm,text="來訪者",width=7,anchor="e").pack(side="left")
  18. et1=tk.Entry(fm)
  19. et1.pack(side="left",padx=10,pady=10)
  20. fm.pack()
  21. fm=tk.Frame(win)
  22. lb=tk.Label(fm,text="密碼",width=7,anchor="e").pack(side="left")
  23. et2=tk.Entry(fm,show="*")
  24. et2.pack(side="left",padx=10)
  25. fm.pack()
  26. fm=tk.Frame(win)
  27. btn=tk.Button(fm,text="確定",width=12,bg="#CCEEFF",command=check).pack(side="left",padx=5,pady=20)
  28. btn=tk.Button(fm,text="清除",width=12,bg="#CCEEFF",command=clear).pack(side="left",padx=5,pady=20)
  29. fm.pack()
  30. win.mainloop()
複製代碼





歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://istak.org.tw/seed/) Powered by Discuz! 7.2