如何检查在tkinter中是否连续按下两个键?

时间:2019-01-28 02:40:53

标签: python python-3.x tkinter

我正在尝试创建一个tkinter应用程序,该应用程序检查是否连续按下了两个键。例如,如果用户按“:”,然后按Enter键。有没有办法在tkinter中使用关键事件来做到这一点?

我已尝试执行以下操作,但不起作用。

if key_pressed == ':':
    if key_pressed == '<Enter>':
        print("ok")

1 个答案:

答案 0 :(得分:0)

一种方法是为每个按键保存一个状态,该状态存储最后按下的按键:

from tkinter import *

root = Tk()
last_key = None

def keypress_handler(event):
    global last_key
    key_pressed = event.keysym
    print(key_pressed)
    if key_pressed == 'b':
        if last_key == 'a':
            print('Pressed first "a" and then "b"')
    last_key = key_pressed

root.bind('<KeyPress>', keypress_handler)

root.mainloop()

如果要使用shift,ctrl或alt等修饰符,则必须将其过滤掉,因为它们还会生成按键事件。