在下面的代码中,我试图使两个不同的矩形分别改变它们的颜色,每次我释放第一个矩形的"d“键和第二个矩形的"f”键(这是因为用户可以自由地按住这两个键中的一个,并且毫不费力地增加点击次数),但是我不知道如何绑定任何特定键的KeyRelease。从tkinter导入*导入时间
def round_rectangle(canvas ,x1, y1, x2, y2, radius=25, **kwargs):
points = [x1+radius, y1,
x1+radius, y1,
x2-radius, y1,
x2-radius, y1,
x2, y1,
x2, y1+radius,
x2, y1+radius,
x2, y2-radius,
x2, y2-radius,
x2, y2,
x2-radius, y2,
x2-radius, y2,
x1+radius, y2,
x1+radius, y2,
x1, y2,
x1, y2-radius,
x1, y2-radius,
x1, y1+radius,
x1, y1+radius,
x1, y1]
return canvas.create_polygon(points, **kwargs, smooth=True)
def click_one(event):
global Clicks
MainCanvas.itemconfig(FirstButton, fill="#ff0000")
window.update()
time.sleep(0.05)
MainCanvas.itemconfig(FirstButton, fill="#111111")
Clicks += 1
ClicksVar.set(Clicks)
def click_two(event):
global Clicks
MainCanvas.itemconfig(SecondButton, fill="#ff0000")
window.update()
time.sleep(0.05)
MainCanvas.itemconfig(SecondButton, fill="#111111")
Clicks += 1
ClicksVar.set(Clicks)
window = Tk()
window.geometry("960x600")
window.config(bg="#000000")
Clicks = 0
ClicksVar = IntVar()
window.bind("<KeyRelease>", click_one)
window.bind("<KeyRelease>", click_two)
MainCanvas = Canvas(window, width=960, height=600, bg="#000000")
MainCanvas.pack()
FirstButton = round_rectangle(MainCanvas ,385, 255, 475, 345, fill="#111111")
SecondButton = round_rectangle(MainCanvas ,485, 255, 575, 345, fill="#111111")
ClickLabel = Label(MainCanvas, font=("Premium", 15), width=3, height=1, textvariable=ClicksVar, bg="#111111", fg="#777777")
ClickLabel.place(x=462, y=350)
window.mainloop()发布于 2022-04-17 16:26:38
这就是你问题的答案。如果你的广告是按下键和键盘功能的If -语句,那么你就有了一个特定键的绑定。
def keydown(e):
print(e.char)
def keyup(e):
print(e.char)
widget.bind("<KeyPress>", keydown)
widget.bind("<KeyRelease>", keyup)发布于 2022-04-17 16:51:09
如何在tkinter中绑定任意特定密钥的KeyRelease?
您可以与KeyRelease一起指定特定的密钥。例如,下面的代码在释放"d“键时调用click_one,在释放"f”键时调用click_two。
window.bind("<KeyRelease-d>", click_one)
window.bind("<KeyRelease-f>", click_two)有关事件说明符的权威文档,请参阅tcl/tk手册页中的事件模式。
发布于 2022-04-17 16:56:32
当我想要绑定一个键来执行一个操作时,我就使用它。您可以尝试以下方法:
import keyboard
shortcut = "F1"
if keyboard.is_pressed(shortcut):
<yourcode>https://stackoverflow.com/questions/71903472
复制相似问题