亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

鍵綁定導致功能在啟動時自動運行

鍵綁定導致功能在啟動時自動運行

HUH函數 2023-02-07 16:42:02
我正在嘗試為我創建一個鍵綁定Entry,它接受用戶輸入的內容Entry,然后調用一個函數。我的代碼:def nameValidation(name):    if PresenceCheck(name) and LengthCheck(name,2) and DataTypeCheck(name,str):        print("Valid Name")    else:        nameEntry.configure(bg="red")nameEntry = tk.Entry(root,textvariable=nameInput,bg="white",font=("Arial",28))nameEntry.grid(row=2,column=2)nameEntry.bind("<FocusOut>",nameValidation(nameInput.get()))當我運行代碼時,它Entry是紅色的,表明該函數已被調用,即使鍵綁定沒有被激活。
查看完整描述

1 回答

?
慕姐4208626

TA貢獻1852條經驗 獲得超7個贊

你犯了一個很常見的錯誤。你的函數在你的程序執行時執行,因為你在你的.bind().


解決此問題的一種方法是添加一個lambda.


代碼:


def nameValidation(name, event = None):

    if PresenceCheck(name) and LengthCheck(name,2) and DataTypeCheck(name,str):

        print("Valid Name")

    else:

        nameEntry.configure(bg="red")

nameEntry = tk.Entry(root,textvariable=nameInput,bg="white",font=("Arial",28))

nameEntry.grid(row=2,column=2)

nameEntry.bind("<FocusOut>", lambda: nameValidation(nameInput.get()))

希望這可以幫助!


如評論中所述,lambda: event如果您想要匿名函數,請使用。如果您遇到錯誤,請使用lambda _:


查看完整回答
反對 回復 2023-02-07
  • 1 回答
  • 0 關注
  • 101 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號