python里的tkinter关于bind的问题

#!/usr/bin/pythonfromtkinterimport*defcb1():print('button1clicked')defcb2():print('bu... #!/usr/bin/python

from tkinter import *

def cb1():
print ('button1 clicked')

def cb2():
print ('button2 clicked')

def cb3():
print ('button3 clicked')

root=Tk()
b1=Button(root,text='Button1',command=cb1)
b2=Button(root,text='Button2')
b2.bind("<Button-1>",cb2)
b3=Button(root,text='Button3',command=cb3)

b1.pack()
b2.pack()
b3.pack()

b2.focus_set()

root.mainloop()
这个程序运行后,

点击button2出现以下错误,
Exception in Tkinter callback
Traceback (most recent call last):
File "/usr/local/python3/lib/python3.3/tkinter/__init__.py", line 1442, in __call__
return self.func(*args)
TypeError: cb2() takes 0 positional arguments but 1 was given
请问是为什么?
展开
 我来答
百度网友008042b
推荐于2018-03-01
知道答主
回答量:20
采纳率:100%
帮助的人:5.1万
展开全部
<Button-1>是鼠标左键单击,你定义的函数里没有参数,但鼠标单击事件作为参数传入cb2.
def cb2(event):
改成这样就没有问题了
亲测
正在学bind怎么用看到这个问题给了我提示
万分感谢
百度网友87b2a52
2013-04-30 · 知道合伙人软件行家
百度网友87b2a52
知道合伙人软件行家
采纳数:523 获赞数:3490
毕业于南京大学,硕士学位。10年软件研发经验。现任信息系统架构师。

向TA提问 私信TA
展开全部
b2.bind("<Button-1>",cb2)
这个 cb2() takes 0 positional arguments but 1 was given是说cb2函数应该是不带参数的,但是你调用的时候给了一个参数,然后就报错了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
程序员vi
2022-04-03
知道答主
回答量:3
采纳率:0%
帮助的人:1149
展开全部
这样:
def cb1(*args):
#somecode
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式