除非同时按下功能,否则不能通过<KeyPress拾取字符,但是可以很好地拾取所有非字符

时间:2019-06-28 18:56:00

标签: python tkinter

虽然它在Windows上可以正常工作,但在Mac上我一直试图用来移动字符的键w,a,s和d却未被使用

我不知道如何解决该错误,因为这是我使用python的第一周。我想不起要尝试的东西。

import tkinter
window = tkinter.Tk()
canvas = tkinter.Canvas(window, width=100, height=100)
keylist = []
def press(event):
    if event.keysym not in keylist:
        keylist.append(event.keysym)
def release(event):
    if event.keysym in keylist:
        keylist.remove(event.keysym)
def test():
    print(keylist)
    window.after(200, test)
test()
canvas.bind("<KeyPress>", press)
canvas.bind("<KeyRelease>", release)
canvas.focus_set()
canvas.pack()
window.mainloop

如果没有结果(确实发生),我希望控制台输出[],但是当我按住q时(没有发生),我也希望控制台输出['q']。当我按住空格键时,输出['space'],这也没有发生。相反,我一直得到空的方括号。列表中输出字符的唯一时间是是否事先按下了函数,例如函数q导致['Super_L','q'],然后是['q'](如果释放了函数,但是q举行。

0 个答案:

没有答案