鱼C论坛

 找回密码
 立即注册
查看: 36|回复: 2

[已解决]按钮绑定后,如何操作呢 ?

[复制链接]
发表于 昨天 15:43 | 显示全部楼层 |阅读模式

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

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

x

  1. from tkinter import *
  2. root=Tk()
  3. def p(event):
  4.         print("123456789")
  5. m=Button(root,text="晴朗")
  6. m.pack()
  7. m.bind("<KeyPress-a>",p)
  8. mainloop()
复制代码


按键盘【a】键后,怎么没有输出啊?俺不会操作吗 ?
最佳答案
昨天 16:23
因为你应该绑定root而不是按钮m
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 昨天 15:43 | 显示全部楼层
你遇到的问题是因为按钮没有获得焦点。在 Tkinter 中,键盘事件只会发送给当前获得焦点的小部件。你的代码将 <KeyPress-a> 事件绑定到了按钮 m,但程序启动时按钮并没有自动获得焦点,所以按 [a] 键没有反应。

正确的操作方法:
1. 运行程序后,先用鼠标点击一下按钮(这样按钮就获得了焦点)。
2. 然后按键盘上的 [a] 键,这时就会输出 "123456789"。

改进建议:
如果你希望无论焦点在哪里,按 [a] 键都能触发事件,可以将事件绑定到根窗口 root 上。修改代码如下:


  1. from tkinter import *

  2. root = Tk()

  3. def p(event):
  4.     print("123456789")

  5. m = Button(root, text="晴朗")
  6. m.pack()

  7. # 将事件绑定到根窗口,这样只要窗口有焦点,按 a 键就会触发
  8. root.bind("<KeyPress-a>", p)

  9. mainloop()
复制代码


这样修改后,只要程序窗口是激活状态(有焦点),按 [a] 键就会输出,无需先点击按钮。

如果你还有其他问题,请继续提问!

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

使用道具 举报

发表于 昨天 16:23 | 显示全部楼层    本楼为最佳答案   
因为你应该绑定root而不是按钮m
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-16 12:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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