#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 сказал, что это сработало. Нехорошо принимать чей-то ответ, даже не отдавая ему должное.