因此,我試圖做到這一點,如果輸入欄位 == 密碼 (123),則繼續按鈕 (enterbutton) 的狀態將變為活動狀態而不是禁用狀態。我只能使用 2 個按鈕在一定程度上實作這一點,但如果輸入“123”,然后洗掉“enterbutton”的狀態不會改變。我如何才能在“輸入按鈕”中全部使用此功能,而不必有 2 個按鈕,并且在洗掉所述密碼時更新它?
root = Tk()
root.geometry("500x300")
e = Entry(root)
e.insert(0, "Enter your password")
def check():
password = e.get()
if password == "123":
enterbutton["state"] = ACTIVE
if password != "123":
enterbutton["state"] = DISABLED
button = Button(root, text="b", width=10, height=3, command=check)
enterbutton = Button(root, text="Enter", state=DISABLED, width=10, height=3,)
e.pack(pady=30)
enterbutton.pack()
button.pack()
mainloop()
uj5u.com熱心網友回復:
我建議在輸入欄位中使用 StringVar。使用它的trace方法,您可以設定每次更改文本時呼叫的函式。另外,我強烈建議匯入 tkintertk而不是使用 * import 匯入所有內容。
import tkinter as tk
root = tk.Tk()
root.geometry("500x300")
var = tk.StringVar()
var.set("Enter your password")
e = tk.Entry(root, textvariable=var)
def check(*args):
password = var.get()
if password == '123':
button['state'] = 'normal'
else:
button['state'] = 'disabled'
var.trace('w', check)
button = tk.Button(root, text="Enter", state='disabled', width=10, height=3,)
e.pack(pady=30)
button.pack()
root.mainloop()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/370473.html
