当鼠标指针在Entry小部件中时,我希望按下键盘上的任何键(不使用循环)来触发Print:Pressure detected! You pressed any key.要实现这一点,我应该在函数中写些什么?你能给我们展示一个带有演示代码的解决方案吗?

当前在我的代码中,检测到点击Entry小部件,但我不想得到这个.我想按一下键.

import tkinter as tk

def detects_key_press(event):
    print("Pressure detected! You pressed any key")

root = tk.Tk()
entry = tk.Entry(root)
entry.bind("<1>", detects_key_press)
entry.pack(fill="x")

root.mainloop()

推荐答案

目前,只要你按下"鼠标按键1"(即"<1>"),你的bind命令就会调用你的函数.你需要把这个改成"<Key>".要查看按下了哪个特定的键,您可以访问event.char.确保首先用鼠标点击导航到Entry字段.

import tkinter as tk

def detects_key_press(event):
    print(f"Pressure detected! You pressed {event.char}")

root = tk.Tk()
entry = tk.Entry(root)
entry.bind("<Key>", detects_key_press)
entry.pack(fill="x")

root.mainloop()

Demo

demo key pressed

有关所有特定密钥绑定的参考,请参见here.例如,如果您只想在按下键a时调用事件,则可以指定"<Key-a>".

Python相关问答推荐

Django关于UniqueBindition的更新

使用decorator 重复超载

解析讨论论坛只给我第一个用户 comments ,但没有给我其他用户回复

Flask:如何在完整路由代码执行之前返回验证

Plotly:如何更改Heatmap中彩色条的勾选文本

code _tkinter. Tcl错误:窗口路径名称错误.!按钮4"

给定数据点,制定它们的关系

如何在PIL、Python中对图像应用彩色面膜?

未删除映射表的行

如何让Flask 中的请求标签发挥作用

管道冻结和管道卸载

如何列举Pandigital Prime Set

数据抓取失败:寻求帮助

如何在Python数据框架中加速序列的符号化

如何使用pytest来查看Python中是否存在class attribution属性?

如何创建一个缓冲区周围的一行与manim?

如何设置视频语言时上传到YouTube与Python API客户端

Pandas计数符合某些条件的特定列的数量

pysnmp—lextudio使用next()和getCmd()生成器导致TypeError:tuple对象不是迭代器''

BeautifulSoup:超过24个字符(从a到z)的迭代失败:降低了首次深入了解数据集的复杂性: