Привязки «Alt» не работают в текстовом виджете tkinter

#python #tkinter

Вопрос:

Когда я привязываю свой текстовый виджет к Altклавише, функция, назначенная этой привязке, не вызывается.

Вот мой код:

 from tkinter import *

root = Tk()

def func(event):
    print("Hello world")
    return 'break'

text = Text(root , width = 65 , height = 20 , font = "consolas 14")
text.pack()

text.bind("<Control-Alt-d>" , func)

mainloop()
 

Здесь, когда я использую CtrlAltdкомбинацию на клавиатуре, функция « func » не вызывается.

Эта проблема, похоже, не возникает, когда я не связываю ключи Ctrlи Altвместе — "<Alt-d>" т. Е. Это действительно сбивает меня с толку.

Есть ли какой-нибудь способ решить эту проблему?

Было бы здорово, если бы кто-нибудь мог мне помочь.

Комментарии:

1. для меня это действительно очень хорошо работает. пробовать снова.

2. Попробуй переодеться "<Control-Alt-d>" "<Control-Alt-KeyPress-d>" . У меня была та же проблема некоторое время назад. Я понятия не имею, почему это решило мою проблему.

3. @TheLizzard не имеет отношения к этому вопросу. Только о том, что вы изменили. Могу ли я узнать, почему master=window это необходимо для управляющих переменных?

4. @JacksonPro В основном за то, что при наличии более чем одного окна переменные не будут знать, откуда они берутся.

5. @CoolCloud Я этого не понял. Можете ли вы уточнить или есть документация, в которой я могу прочитать больше?

Ответ №1:

Хотя это сработало для меня, но если это не работает для вас, тогда измените text.bind("<Control-Alt-d>" , func) на text.bind("<Control-Alt-KeyPress-d>" , func) или, может быть, вам следует попробовать еще раз в другом каталоге

Комментарии:

1. Почему другой каталог ? Также я уже написал » Попробуйте изменить «<Control-Alt-d>» на «<Control-Alt-d><Control-Alt-Нажатие клавиши-d>»<Control-Alt-Нажатие клавиши-d> » в комментариях, и OP сказал, что это сработало. Нехорошо принимать чей-то ответ, даже не отдавая ему должное.