2015-05-21 27 views
1

我有Matlab應用程序,用戶需要點擊圖中的一個點,然後在消息框中確認點擊。我正在使用getCursorInfo來獲取當前點擊的位置。如果用戶未確認點選擇,則應選擇另一點。Matlab獲取光標信息沒有點擊

問題是,有時在用戶選擇消息框中的「否」後,getCursorInfo返回一個新的位置,而不需要用戶單擊鼠標。就好像getCursorInfo認爲鼠標按鈕不斷向下。

這是一個最小的示例代碼,演示了這一點 - 在第3或第4次顯示消息框之後,Matlab認爲鼠標按鈕已關閉,並且沒有任何點擊就更改了光標位置。

fig = figure; 
data = peaks(); 
plot(data); 

old_pos = [-2 -2] 
cur_pos = old_pos 
while 1 
    datacursormode on 
    dcm = datacursormode(fig); 
    while all(cur_pos==old_pos) 
     pause(0.25); 
     ci = getCursorInfo(dcm); 
     if ~isempty(ci) 
      cur_pos = ci.Position; 
     end 
    end 
    display(cur_pos); 
    old_pos = cur_pos 
    datacursormode off 
    questdlg('Question?'); 
end 

沒有對話框這個代碼,用戶可以根據需要而不會混淆選擇儘可能多的點(簡評questdlg調用看到)。

回答

0

原來的溶液here,我需要刪除下面的行中的數據光標:

delete(findall(fig,'Type','hggroup')); 
相關問題