Python / Tkinter: Как я могу заставить метод .bind () работать с клавишами клавиатуры? - PullRequest
0 голосов
/ 20 июля 2011

Я пытаюсь выучить Tkinter, но столкнулся с проблемой. Мне бы хотелось, чтобы, как только пользователь нажал клавишу Enter, он скопирует то, что находится в поле ввода. Я планировал использовать метод .bind (), но он не регистрирует нажатия клавиш. Я пробовал несколько способов, и кажется, что если они связаны с клавиатурой, они не работают.

self.frame.bind("<Return>", self.testevent)   #Doesn't Work
self.frame.bind("<Enter>", self.testevent)    #Works
self.frame.bind("<Button-1>", self.testevent) #Works
self.frame.bind("<F1>", self.testevent)       #Doesn't work

Нет ошибок, которые появляются при компиляции скрипта. Я посмотрел вокруг и не смог найти ответ.

Редактировать: одно из моих предложений было перепутано.

Ответы [ 2 ]

3 голосов
/ 20 июля 2011

Кажется, сначала нужно позвонить self.frame.focus_set().

0 голосов
/ 18 декабря 2014

Я тоже пытался сделать что-то подобное, и это не сработало. Просто используйте tk.bind () или root.bind () (в зависимости от того, как называется Tk ()). Но если у вас уже есть привязка клавиатуры для вашего Tk (), которая аналогична, вы можете просто следовать по пути self.frame.focus_set ().

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