Имитация нажатия клавиши или программный вызов сигнала Gtk.EventControllerKey key-pressed (python)

GTK (python) - как сымитировать сигнал нажатия клавиши. Или может есть иное решение? Есть код:

evk = Gtk.EventControllerKey.new()
evk.connect("key-pressed", self.key_pressed)
evk.connect("key-released", self.key_released)
self.add_controller(evk)

def key_pressed(self, event, keyval, keycode, state):
   if (keycode == 111): self.is_up_pressed = True      # up
   if (keycode == 113): self.is_left_pressed = True    # left
   if (keycode == 114): self.is_right_pressed = True   # right
   if (keycode == 116): self.is_down_pressed = True    # down

   if (self.is_up_pressed and self.is_left_pressed):
        print("up + left")
   elif (self.is_up_pressed and self.is_right_pressed):
        print("up + right")
   elif (self.is_down_pressed and self.is_left_pressed):
        print("down + left")
   elif (self.is_down_pressed and self.is_right_pressed):
        print("down + right")
   elif (self.is_up_pressed):
        print("up")
   elif (self.is_left_pressed):
        print("left")
   elif (self.is_right_pressed):
        print("rigth")
   elif (self.is_down_pressed):
        print("down")
    
def key_released(self, event, keyval, keycode, state):
   if (keycode == 111): self.is_up_pressed = False
   if (keycode == 113): self.is_left_pressed = False
   if (keycode == 114): self.is_right_pressed = False
   if (keycode == 116): self.is_down_pressed = False

Если например зажать «стрелку вверх» и «стрелку влево», а затем отпустить любую из «стрелок» то печатается ничего не будет, пока не нажать любую клавишу… Вопрос в том чтобы не отпущенная клавиша («стрелка») продолжила печататься.


Ответы (0 шт):