dragov 发表于 昨天 15:43

按钮绑定后,如何操作呢 ?



from tkinter import *
root=Tk()
def p(event):
      print("123456789")
m=Button(root,text="晴朗")
m.pack()
m.bind("<KeyPress-a>",p)
mainloop()


按键盘【a】键后,怎么没有输出啊?俺不会操作吗 ?

FishC 发表于 昨天 15:43

你遇到的问题是因为按钮没有获得焦点。在 Tkinter 中,键盘事件只会发送给当前获得焦点的小部件。你的代码将 <KeyPress-a> 事件绑定到了按钮 m,但程序启动时按钮并没有自动获得焦点,所以按 键没有反应。

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

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


from tkinter import *

root = Tk()

def p(event):
    print("123456789")

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

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

mainloop()


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

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

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

pyzyd 发表于 昨天 16:23

因为你应该绑定root而不是按钮m
页: [1]
查看完整版本: 按钮绑定后,如何操作呢 ?