1 回答

TA貢獻(xiàn)1795條經(jīng)驗(yàn) 獲得超7個(gè)贊
您的代碼實(shí)際上存在多個(gè)問題。第一個(gè)是常見問題,但還有更多:
您執(zhí)行該函數(shù),然后將該函數(shù)的結(jié)果(即 )綁定
None
到事件;相反,你必須綁定函數(shù)本身另外,與 with 不同
Button.command
,當(dāng)通過 via 調(diào)用函數(shù)時(shí)bind
,它將獲得一個(gè)參數(shù),即觸發(fā)它的事件通過將按鍵綁定到按鈕,只有當(dāng)按鈕具有焦點(diǎn)時(shí)才會(huì)注冊(cè)它(例如,按下 Tab 直到按鈕“突出顯示”時(shí))
并且該按鈕已經(jīng)有一個(gè)綁定,當(dāng)它獲得焦點(diǎn)并按下空格鍵時(shí),可以“單擊”,因此添加另一個(gè)綁定將使其做出兩次反應(yīng)
實(shí)際上,我沒有設(shè)法unbind
從按鈕執(zhí)行“按空格鍵”操作,因此一種解決方法(除了不給按鈕焦點(diǎn)之外)是使用不同的鍵,例如 ,Return
并將其綁定到root
或使用bind_all
,所以它是綁定到所有小部件。
def checkClick(*unused): # allow optional unused parameters
? ? ...
root.bind("<Return>", checkClick) # function itself, no (), root, and Return
之后,可以通過三種方式觸發(fā)按鈕:
通過單擊它,調(diào)用
command
通過聚焦并按空格鍵,模擬點(diǎn)擊
通過按鍵
Return
,調(diào)用按鍵事件綁定
添加回答
舉報(bào)