gpt4 book ai didi

python - tkinter - 将按键事件绑定(bind)到标签

转载 作者:行者123 更新时间:2023-11-28 21:43:30 29 4
gpt4 key购买 nike

如果我想将按键事件绑定(bind)到标签以更改其文本,我的第一 react 是将按键事件绑定(bind)到标签,这会将标签涂成蓝色,并将按键事件绑定(bind)到标签。
在最基本的情况下,它看起来像这样:

from tkinter import *
root = Tk()
frame = Frame(root)
frame.pack()

def prep(event):
event.widget.config(bg='light blue')
event.widget.bind('<Key>', edit)

def edit(event):
print(event.char)

example = Label(frame, text='Click me')
example.pack()
example.bind('<Button-1>', prep)
mainloop()

令我惊讶的是,按钮按下事件工作正常,为标签着色,但之后的按键没有任何反应。将 event.widget 的 bind 替换为 bind_all 从技术上讲可以解决这个问题,但显然这是不切实际的。
谢谢大家

最佳答案

标签不会收到按键事件,因为它没有键盘焦点(标签在单击时不会获得键盘焦点),因此您需要使用 focus_set 方法为其提供焦点:

from tkinter import *
root = Tk()
frame = Frame(root)
frame.pack()

def prep(event):
event.widget.config(bg='light blue')
event.widget.focus_set() # give keyboard focus to the label
event.widget.bind('<Key>', edit)

def edit(event):
print(event.char)

example = Label(frame, text='Click me')
example.pack()
example.bind('<Button-1>', prep)
mainloop()

关于python - tkinter - 将按键事件绑定(bind)到标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42074231/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com