2016-06-07 80 views
-1

我正在創建一個實時MATLAB演示,我需要通過點擊axes來選擇一個感興趣的點。一般來說,系統工作正常,我可以使用ButtonDownFcn修改變量。但是,發生以下問題當繪圖對象被選中時軸沒有被執行ButtonDownFcn

當我在同一軸上繪製其他數據(例如散點圖)時,如果我單擊散點圖而不是axes(其中沒有繪圖),似乎不會觸發ButtonDownFcn 。沒有錯誤。

這是一個問題,因爲我的散點圖可能非常密集,我想點擊的點位於圖元對象的下方。

我該如何做到這一點,以便所有的鼠標點擊都被axes註冊,以便我的ButtonDownFcn在每次點擊時都被執行。

+0

請提供一個[mcve] – excaza

+0

該行還有一個按鈕點擊回調。你可能想禁用它。我認爲你可以關閉一個'hittest'屬性(將其設置爲false)。 – siliconwafer

回答

1

您想利用HitTest property禁用所有其他圖形對象響應鼠標單擊的能力。

如果你想只啓用點擊axes這樣的事情應該工作。

% Disable callbacks for all objects within the current axes 
set(findall(gca), 'HitTest', 'off') 

% Enable click events for the axes and set the buttondownfcn 
set(gca, 'HitTest', 'on', 'ButtonDownFcn', callback)