Tkinter 键绑定在 Python 中不起作用



我正试图制作一个能增加资金或其他东西的按钮,但我只是想在另一个项目中进行测试

这是我的按钮代码

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键,调用键事件绑定

最新更新