Есть ли простой способ создать связку клавиш, которая связывается с каждым ключом в tkinter? - PullRequest
1 голос
/ 10 апреля 2019

Я создаю интерактивную игру на Python, и я пытаюсь сделать введение с «Нажмите любую клавишу, чтобы продолжить».У меня возникли некоторые проблемы с этим, так как трудно связать все ключи с одним действием.

Я попытался привязать к '<Any>', но отображается сообщение об ошибке.

from tkinter import *

window = Tk()

root = Canvas(window, width=500, height=500)

def testing():
    print("Hello!")

def countdown(count, label):
    label['text'] = count
    if count > -1:
        root.after(1000, countdown, count-1, label)
    elif count == 0:
        label['text'] = 'Time Expired'
    elif count < 0:
        label.destroy()

root.bind_all('<Any>', testing)

root.pack()
root.mainloop()

Как упоминалось ранее, при связывании клавиш '<Any>' появляется сообщение об ошибке: tkinter.TclError: bad event type or keysym "Any".Есть ли простой способ привязать каждый ключ к действию?

1 Ответ

3 голосов
/ 10 апреля 2019

Я использую <Key>, он захватит любое событие клавиатуры и напечатает «Hello».И не забудьте указать event или event=None параметр в testing().

from tkinter import *

window = Tk()

root = Canvas(window, width=500, height=500)

def testing(event):
    print("Hello!")

def countdown(count, label):
    label['text'] = count
    if count > -1:
        root.after(1000, countdown, count-1, label)
    elif count == 0:
        label['text'] = 'Time Expired'
    elif count < 0:
        label.destroy()

root.bind_all('<Key>', testing)

root.pack()
root.mainloop()
...