2016-11-22 2 views
0

Я связывание нормального ключа действительно работает функции с использованием Tkinter, например:Блок Нормальной клавиши Функция

from tkinter import * 
root = Tk() 
T = Text() 
T.pack() 
root.bind_all('h', lambda event: print('HI')) 

При нажатии клавиши h, он печатает HI, но и типы Ап h в текст коробка. Есть ли простой способ заблокировать ключ h от его обычной цели?

+0

Вы можете добавить целую кучу проверки для этого текстового поля или изменить привязку клавиш к чему-то вроде Ctrl-H, как это делают все остальные. – TigerhawkT3

ответ

2

Для подавления поведение по умолчанию, возвращает строку "break"

def h_key(event): 
    ... 
    return "break" 

root.bind_all('h', h_key) 

Кроме того, в вашем случае вам не нужно использовать lambda. В общем, вам следует избегать использования lambda, если это действительно не лучший инструмент для работы. Чаще всего лучше написать функцию для ваших привязок. Функции намного легче отлаживать и поддерживать с течением времени.

+0

Этот ответ намного лучше моего. – rassar

+0

@ rassar Кажется, что ваш способ остановить это сам, но это самый простой способ сделать это. – nedla2004