我正在尝试制作一个可以增加金钱或其他东西的按钮,但我只是想在另一个项目中测试它这是我的按钮代码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
提交
取消