这适用于[q,w,e,r,1,2,3]这样的普通键,但我不能让它与Shift,Enter,Backspace等键一起使用,你知道怎么做吗?

from tkinter import *
root=Tk()
root.geometry("200x200")
def func1(event):
    print(f'{event.char} key was pressed')
def func2(event):
    print(f'{event.char} key was released')
root.bind("<KeyPress>",func1)
root.bind("<KeyPress>",func2)
root.mainloop()

推荐答案

从文档中:

.char: 如果事件与生成常规ASCII字符的键的KeyPress或KeyRelease相关,则此字符串将被设置为该字符.(对于像DELETE这样的特殊键,请参见下面的.keysym属性.)

由于这里您try 获取一个特殊的键,如Shift、Caps等,您可以使用keysym来提供键名称.

根据您的 comments ,我看到您期待的函数将在按下并松开Shift键时触发.这可以通过在密钥名称前使用KeyPressKeyRelease来实现:

def func1(event):
    print(f'{event.keysym} key was pressed')
def func2(event):
    print(f'{event.keysym} key was released')

root.bind("<KeyPress-Shift_L>",func1)
root.bind("<KeyRelease-Shift_L>",func2)

以下是一些有用的参考链接:

Python相关问答推荐

X射线扫描显示Docker中的pip漏洞,尽管图像中未安装pip

计算每月过go x年的平均值

在Python中添加期货之间的延迟

手动为pandas中的列上色

删除pandas rame时间序列列中未更改的值

按照行主要蛇扫描顺序对点列表进行排序

在Python中为变量的缺失值创建虚拟值

Select 用a和i标签包裹的复选框?

时间序列分解

如何在箱形图中添加绘制线的传奇?

try 在树叶 map 上应用覆盖磁贴

. str.替换pandas.series的方法未按预期工作

如果值不存在,列表理解返回列表

如何在Python中并行化以下搜索?

Godot:需要碰撞的对象的AdditionerBody2D或Area2D以及queue_free?

Python+线程\TrocessPoolExecutor

如果满足某些条件,则用另一个数据帧列中的值填充空数据帧或数组

多指标不同顺序串联大Pandas 模型

如何从需要点击/切换的网页中提取表格?

如何创建引用列表并分配值的Systemrame列