2013-12-20 56 views
4

我使用的是光標控件在交互式Matplotlib情節,像這樣:選擇工具欄部件時忽略matplotlib光標部件?

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

效果很好。 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) 

回答

7

這是不公開的狀態,但是可以檢查

​​

這將是True如果工具欄不試圖抓住點擊(通過平移或縮放)。

您正在接觸並觸摸可能會隨時更改的內部狀態,因此請使用此風險自擔風險。開發人員沒有任何改變任何開始於_*而沒有棄用期的任何事情。

+0

謝謝。檢查'如果fig.canvas.manager.toolbar._active不是None:ignore_custom_cursor_clicks'。任何機會,隨着Matplotlib增加交互性,公共訪問將被提供? – Jzl5325

+0

實際上現在正在推動重新編寫工具欄。你應該創建一個問題,我github問這個問題。在文本中包含@tacaswell,所以我得到ping – tacaswell

+0

從2013年的問題,有任何更新的公共方法嗎? – Demis