Matlab: как получить текущую позицию мыши на клике с помощью обратных вызовов - PullRequest
12 голосов
/ 05 мая 2010

Я гуглил близко и далеко, но не смог получить пример того, как вы связываете обратный вызов с событием click в matlab. Может кто-нибудь показать мне пример?

1 Ответ

18 голосов
/ 05 мая 2010

Определите WindowButtonDownFcn вашего обратного вызова фигуры с помощью команды set и тега @callbackfunction.

Вот так:

function mytestfunction()
f=figure;
set(f,'WindowButtonDownFcn',@mytestcallback)

function mytestcallback(hObject,~)
pos=get(hObject,'CurrentPoint');
disp(['You clicked X:',num2str(pos(1)),', Y:',num2str(pos(2))]);

Вы также можете передавать дополнительные переменные в функции обратного вызова, используя обозначение ячейки:

set(f,'WindowsButtonDownFcn',{@mytestcallback,mydata})

Если вы работаете с объектами uicontrol, то это:

set(myuicontrolhandle,'Callback',@mytestcallback)
...