我正试图制作一个能增加资金或其他东西的按钮,但我只是想在另一个项目中进行测试
这是我的按钮代码
global counterCheck
counterCheck = 0
def 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()
您的代码实际上存在多个问题。第一个是一个常见的问题,但还有更多:
- 执行函数,然后将该函数的结果
None
绑定到事件;相反,您必须绑定函数本身 - 此外,与
Button.command
不同,当通过bind
调用函数时,它将获得一个参数,即触发它的事件 - 通过将键绑定到按钮,它将仅在按钮具有焦点时(例如,当按下Tab直到按钮"突出显示"时(被注册
- 并且按钮已经具有要被"绑定"的绑定;点击";当它被聚焦并且Space被按下时,所以添加另一个绑定会使它反应两次
我实际上没有设法CCD_;按下空格键";操作,因此一种解决方法(除了永远不要给按钮焦点之外(是使用不同的键,例如Return
,并将其绑定到root
或使用bind_all
,使其绑定到所有小部件。
def checkClick(*unused): # allow optional unused parameters
...
root.bind("<Return>", checkClick) # function itself, no (), root, and Return
在此之后,有三种方式可以触发按钮:
- 单击它,调用
command
- 通过聚焦并按下空格,模仿点击
- 通过按
Return
键,调用键事件绑定