找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 3028|回复: 0

[讨论] 一个特别奇怪的python问题!

3

主题

10

帖子

10

积分

贫民

积分
10
Charis 发表于 2018-4-9 22:52:23 | 显示全部楼层 |阅读模式
本帖最后由 Charis 于 2018-4-9 22:53 编辑
  1. def radioclick(event,item):
  2.     print("click radio")
  3.     print(item)
  4.     cv.itemconfig(item,image=icon_circle_slelected_image)
复制代码

        这个函数主要是鼠标左键点击时,切换一个图标,把单选框从未选定状态切换到选定状态
  1. for item in cv.find_withtag("radio"):
  2.     print(item) #(19,24,29,34)
  3.     cv.tag_bind(item,"<Button-1>",lambda event:radioclick(event,item))  #哈哈,但是全部绑定到34了?!
复制代码

        这个是绑定触发事件的代码,cvfind_withtag()返回一个元组(这应该不是问题的关键),触发时会默认返回一个event
  1. cv.tag_bind(19,"<Button-1>",lambda event:radioclick(event,19))
  2. cv.tag_bind(24,"<Button-1>",lambda event:radioclick(event,24))
  3. cv.tag_bind(29,"<Button-1>",lambda event:radioclick(event,29))
复制代码
       然后我一个一个绑定,居然成功了!!!!!!!!!!!!!!!!!!
        个人感觉应该是lambda函数的问题,好吧,刚刚我给上文补了一句,“触发时会默认返回一个event”,貌似我知道怎么回事了,这锅lambda函数不能背。。。
        然后想了想,我打了这么多字,还是发出来算了,混个脸熟也好
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表