He notado que cuando vincula teclas en tkinter (python3.2 winxp), los enlaces distinguen entre mayúsculas y minúsculas con los caracteres de las letras. En otras palabras, enlace <Control-o>
no funciona si presiona Control + o si las mayúsculas bloqueanestá activo. ¿Significa que necesito escribir dos enlaces para cada combinación de teclas no sensible a mayúsculas y minúsculas con caracteres de letras? ¿O hay alguna manera de resolver esto?
Gracias por la ayuda :)
Respuestas
2 para la respuesta № 1Sí, tienes que hacer dos fijaciones.
1 para la respuesta № 2
Debe vincularse dos veces en su caso, pero no necesita pensar en ello una vez que escriba una función inteligente. Definamos una función que haga esto por nosotros.
def bind_(widget, all_=False, modifier="", letter="", callback=None, add="",):
if modifier and letter:
letter = "-" + letter
if all_:
widget.bind_all("<{}{}>".format(modifier,letter.upper()), callback, add)
widget.bind_all("<{}{}>".format(modifier,letter.lower()), callback, add)
else:
widget.bind("<{}{}>".format(modifier,letter.upper()), callback, add)
widget.bind("<{}{}>".format(modifier,letter.lower()), callback, add)
Y luego úsalo así:
bind_(text_widget, modifier="Control", letter="s", callback=save)
bind_(text_widget, modifier="Control-Shift", letter="s", callback=save_as)
bind_(text_widget, modifier="", letter="r", callback=print_something)