我正在嘗試制作一個可以增加金錢或其他東西的按鈕,但我只是想在另一個項目中測試它這是我的按鈕代碼global counterCheckcounterCheck = 0def checkClick(): global counterCheck counterCheck += 1 textClick.config(text=counterCheck)bttt = Button(root, width=1720, height=600, text="Click Here", command=checkClick)bttt.bind("<space>", checkClick())bttt.pack()
1 回答

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