【发布时间】:2020-06-13 00:02:53
【问题描述】:
我有一个绑定到事件函数的按钮,我希望该函数计算按钮被单击的次数。所以我有一个变量(点击次数),我希望事件函数将点击次数作为参数并将其加一。这是我的代码:
#imports
import tkinter
#variables
clicks = 0
#event functions
def click(event,clicks):
clicks += 1
print(clicks)
return clicks
#create gui
window = tkinter.Tk()
button = tkinter.Button(text = "click me!")
button.pack()
clicks = button.bind("<Button-1>",click)
#run gui
window.mainloop()
当我运行程序并单击按钮时,我收到“click() 缺少 1 个必需的位置参数:'clicks'”错误。但据我所知,我已经初始化了点击,点击获取并返回点击,那么我哪里出错了?
【问题讨论】:
-
bind()返回bind_ID,而不是来自函数click()的值 - 它在列表上发送"<Button-1>",click,当您单击鼠标按钮时,然后mainloop使用列表检查它,当它找到时"<Button-1>",click然后它执行click(event),而不是click(event, clicks)所以定义def click(event,clicks):是错误的。而且使用return clicks和clicks = bind()是没用的。
标签: python function events tkinter parameters