получить значение ключа при вызове matplolib pyplot waitforbuttonpress () - PullRequest
1 голос
/ 19 июня 2019

matplotlib pyplot имеет функцию с именем waitforbuttonpress(), которая будет возвращать либо True, либо False в зависимости от того, получено ли событие клавиатуры или мыши на графике. Поскольку такие события мыши возвращаются waitforbuttonpress(), даже если пользователь взаимодействует с рисунком, используя обычные графические инструменты (например, масштабирование), единственный способ использовать эту функцию заключается в следующем: (при условии, что функция масштабирования должна быть доступна)

while not plt.waitforbuttonpress(): pass  #ignore mouse events use by zomming ...

Выше будет блокироваться, пока не будет нажата клавиша на клавиатуре (в отличие от события мыши, которое будет обрабатываться нормально, например, для масштабирования)

Есть ли способ узнать , какая клавиша была нажата, чтобы различать различные варианты?

1 Ответ

2 голосов
/ 19 июня 2019

Я не думаю, что это напрямую возможно, но вы можете получить значение ключа из key_press_event, который будет запущен одновременно с waitforbuttonpress():

import matplotlib.pyplot as plt

the_key = None

def press(event):
    global the_key
    the_key = event.key

plt.figure()
plt.plot([1, 4, 6])
plt.gcf().canvas.mpl_connect('key_press_event', press)
while not plt.waitforbuttonpress(): pass  # ignore mouse events use by zomming ...
print("You pressed: ", the_key)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...