Я создаю простой графический интерфейс калькулятора, я смог связать нажатия клавиш с нажатиями кнопок, и код работает хорошо.
Сейчас я пытаюсь имитировать нажатие кнопки, когда правая клавиша былаозначало, что, например, допустим, что на клавиатуре была нажата клавиша «5». Мне бы хотелось, чтобы кнопка «5» выглядела так, как будто она нажата
Мои попытки до сих пор включали использование фиктивной функции, котораявызов 2 других функций, которые должны делать именно то, что я описал, но это не работает:
def numeric_keystroke_action(self, event):
k = find_key_from_value(calculator_button_text, event.char)
self.simulate_button_press(k)
self.click(event.char, False)
self.simulate_button_idle(k)
def simulate_button_press(self, key):
self.buttons[key].configure(style='pressed_style.TButton')
def simulate_button_idle(self, key):
self.buttons[key].configure(style='idle_style.TButton')
Моя другая попытка - использовать add="+"
в bind()
, но она тоже не сработала, она вызывала толькопервое связывание и ключ застряли в режиме «ход», то есть он просто вызывает первую функцию связывания, а не вторую:
...
self.master.bind(k, lambda event: self.numeric_keystroke_action(event))
self.master.bind(k, lambda event: self.simulate_button_idle(key), add="+")
...
def numeric_keystroke_action(self, event):
k = find_key_from_value(calculator_button_text, event.char)
self.simulate_button_press(k)
self.click(event.char, False)
#self.simulate_button_idle(k)
def simulate_button_press(self, key):
self.buttons[key].configure(style='pressed_style.TButton')
def simulate_button_idle(self, key):
self.buttons[key].configure(style='idle_style.TButton')
Буду признателен за некоторую помощь