为了账号安全,请及时绑定邮箱和手机立即绑定

Tkinter 键绑定在 Python 中不起作用

Tkinter 键绑定在 Python 中不起作用

慕斯王 2023-07-18 17:49:41
我正在尝试制作一个可以增加金钱或其他东西的按钮,但我只是想在另一个项目中测试它这是我的按钮代码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,调用按键事件绑定


查看完整回答
反对 回复 2023-07-18
  • 1 回答
  • 0 关注
  • 188 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信