Как удалить связку ключей после того, как она сделала свою работу - PullRequest
1 голос
/ 12 апреля 2019

Я создал связку ключей и хочу удалить ее после ее активации. Как мне это сделать?

Я пробовал это в моем коде:

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

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

Однако это не работает, так как Python отображает сообщение об ошибке, в котором говорится, что deletecommand() takes 2 positional arguments but 3 were given, когда я даю только два аргумента.

from tkinter import *

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

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

root.pack()
root.mainloop()

Я надеялся, что программа удалит связку клавиш после того, как она выполнит свою работу. Тем не менее, Python отображал сообщение об ошибке, как упоминалось ранее. Как мне решить эту проблему?

1 Ответ

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

попробуйте как это

from tkinter import *
root = Tk()


def testing(event):
    print("Hello!")
    root.unbind_all('<Key>')


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

Для отмены привязки всех виджетов используйте функцию .unbind_all('<Key>').

...