选择工具栏小部件时忽略matplotlib游标小部件?

Jzl*_*325 5 python interactive matplotlib

我在交互式Matplotlib图中使用了一个光标小部件,如下所示:

cursor = Cursor(ax1, useblit=True, color='red', linewidth=1)
cid = fig.canvas.mpl_connect('button_press_event', on_click)
Run Code Online (Sandbox Code Playgroud)

效果很好.该on_click函数采用x,y点击位置并进行一些补充绘图.基本的东西.

当我激活缩放工具时,我也捕获了点击.是否有必要将激活和取消激活关键笔划绑定到RectangleSelector示例的窗口小部件,或者是否存在知道工具栏项状态的方法?

RectangleSelector示例中选择器打开/关闭的示例:

def toggle_selector(event):
    if event.key in ['Q','q'] and toggle_selector.RS.active:
        toggle_selector.RS.set_active(False)
    if event.key in ['A', 'a'] and not toggle_selector.RS.active:
        toggle_selector.RS.set_active(True)
Run Code Online (Sandbox Code Playgroud)

tac*_*ell 9

这不是公共状态,但你可以检查

fig.canvas.manager.toolbar._active is None
Run Code Online (Sandbox Code Playgroud)

True如果工具栏没有试图抓住点击(通过平移或缩放),将会是这样.

您正在接触并触及可随时更改的内部状态,因此使用此风险需要您自担风险.开发人员没有任何关于改变任何_*以没有弃用期开头的事情的悔意.