matplotlib:如何在图形上选择shift点击?

2024-02-28

我有一个 matplotlib 并且创建了一个button_press_event像这样:

self.fig.canvas.mpl_connect('button_press_event', self.onClick)

def onClick(self, event)
    if event.button == 1:
        # draw some artists on left click

    elif event.button == 2:
        # draw a vertical line on the mouse x location on wheel click

    elif event.button == 3:
        # clear artists on right click

现在是否可以将滚轮单击处理程序修改为类似这样

    elif event.button == 2 or (event.button == 1 and event.key == "shift"):
        # draw a vertical line on the mouse x location 
        # on wheel click or on shift+left click 
        # (alternative way if there is no wheel for example)

看起来button_press_event不支持按键和key_press_event不支持鼠标按钮点击,但我不确定。

有办法吗?


您还可以绑定按键和按键释放事件并执行以下操作:

self.fig.canvas.mpl_connect('key_press_event', self.on_key_press)
self.fig.canvas.mpl_connect('key_release_event', self.on_key_release)

...

def on_key_press(self, event):
   if event.key == 'shift':
       self.shift_is_held = True

def on_key_release(self, event):
   if event.key == 'shift':
       self.shift_is_held = False

然后您可以检查您的onClick函数如果self.shift_is_held.

if event.button == 3:
    if self.shift_is_held:
        do_something()
    else:
        do_something_else()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

matplotlib:如何在图形上选择shift点击? 的相关文章

随机推荐