鱼C论坛

 找回密码
 立即注册
查看: 87|回复: 5

[已解决]Tkinter bind 错误

[复制链接]
发表于 2025-8-22 15:36:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

  1. from tkinter import *
  2. root=Tk()
  3. def m(event):
  4.      b.config(background="lime")
  5. def n(event):
  6.      b.config(background="orchid")
  7. b=Button(root,text="近期大暴雨").pack()
  8. b.bind("<Enter>",m)
  9. b.bind("<Leave>",n)
  10. mainloop()
复制代码


如  何  绑  定  啊  ?
最佳答案
7 天前

  1. from tkinter import *

  2. root = Tk()

  3. def m(event):
  4.     b.config(background="lime")
  5. def n(event):
  6.     b.config(background="orchid")

  7. b = Button(root, text="近期大暴雨")
  8. b.pack()
  9. b.bind("<Enter>", m)   # 鼠标进入按钮时触发
  10. b.bind("<Leave>", n)   # 鼠标离开按钮时触发

  11. mainloop()
复制代码

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2025-8-22 15:36:51 | 显示全部楼层
你好!看起来你在使用 Tkinter 绑定事件时遇到了问题。主要问题有两个:

1. 你的事件绑定字符串是空的,应该指定具体的事件(比如鼠标进入或离开按钮)。
2. 使用 b=Button(...).pack() 会导致 b 被赋值为 None,因为 pack() 方法返回的是 None。这会导致后续的绑定操作失效。

以下是修正后的代码:


  1. from tkinter import *

  2. root = Tk()

  3. def m(event):
  4.     b.config(background="lime")
  5. def n(event):
  6.     b.config(background="orchid")

  7. b = Button(root, text="近期大暴雨")
  8. b.pack()
  9. b.bind("<Enter>", m)   # 鼠标进入按钮时触发
  10. b.bind("<Leave>", n)   # 鼠标离开按钮时触发

  11. mainloop()
复制代码


主要修改点:
- 将 b=Button(...).pack() 拆分为两行,先创建按钮再布局。
- 为 bind 方法指定了具体的事件:<Enter>(鼠标进入)和 <Leave>(鼠标离开)。

这样修改后,当鼠标移动到按钮上时,按钮背景会变为绿色(lime);当鼠标离开时,会变为紫色(orchid)。希望这对你有帮助!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 7 天前 | 显示全部楼层    本楼为最佳答案   

  1. from tkinter import *

  2. root = Tk()

  3. def m(event):
  4.     b.config(background="lime")
  5. def n(event):
  6.     b.config(background="orchid")

  7. b = Button(root, text="近期大暴雨")
  8. b.pack()
  9. b.bind("<Enter>", m)   # 鼠标进入按钮时触发
  10. b.bind("<Leave>", n)   # 鼠标离开按钮时触发

  11. mainloop()
复制代码

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 7 天前 | 显示全部楼层
谢谢你
另外提醒一个以后一定会遇到的问题,bind传参要用lambda ,可以上网详细了解
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 7 天前 | 显示全部楼层
某一个“天” 发表于 2025-8-23 09:49
谢谢你
另外提醒一个以后一定会遇到的问题,bind传参要用lambda ,可以上网详细了解


好哒,谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 7 天前 | 显示全部楼层
某一个“天” 发表于 2025-8-23 09:49
谢谢你
另外提醒一个以后一定会遇到的问题,bind传参要用lambda ,可以上网详细了解


**
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-8-30 16:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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