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調用看到)。