<KeyPress не выбирает символы, если функция не нажата одновременно, но все не-символы хорошо подобраны - PullRequest
0 голосов
/ 28 июня 2019

Хотя он отлично работает в Windows, в Mac ключи w, a, s и d, которые я пытался использовать для перемещения персонажа, не воспринимаются

Я понятия не имею, как исправитьошибка, так как это моя первая неделя с питоном.Я не могу придумать, что можно попробовать.

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удерживается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...