调用matplolib pyplot waitforbuttonpress()时获取键值

时间:2019-06-19 14:09:09

标签: python matplotlib

matplotlib pyplot具有一个名为waitforbuttonpress()的函数,该函数将根据在图形中是否接收到键盘或鼠标事件而返回TrueFalse。 由于waitforbuttonpress()会返回此类鼠标事件,即使用户使用常规图形工具(例如缩放)与图形进行交互,所以使用此功能的唯一方法如下:(假定缩放功能应该可用)

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

上面的内容将阻止直到按下键盘键(与鼠标事件相反,鼠标事件将被正常处理,例如缩放)

是否可以知道哪个键被按下,以区分不同的选择?

1 个答案:

答案 0 :(得分:2)

我认为这不可能直接实现,但是您可以从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)