当按下某个键时,如何在Matlab上获取uicomponent滑块的值?

时间:2012-09-11 20:43:50

标签: matlab uislider jslider uicomponents

按下某个键时,如何在Matlab上获取uicomponent滑块的值? 我在GUI代码中使用它:

% --- Executes just before teste is made visible.
function teste_OpeningFcn(hObject, eventdata, handles, varargin)

% Choose default command line output for teste
handles.output = hObject;
handles.slid=uicomponent('style','slider',0,9,5,'position',[10 30 200 50]);

set(handles.slid, 'KeyPressedCallback','handles.slid.value');

% Update handles structure
guidata(hObject, handles)

滑块正常工作,但是当我按下一个键时,会返回错误“Undefined variable”handle“或class”handles.slid.value“。 怎么解决?

1 个答案:

答案 0 :(得分:1)

您可以将回调连接到所需的事件,并从 src 参数中获取值

handles.slid=uicomponent('style','slider',0,9,5,'position',[10 30 200 50]);
set(handles.slid, 'KeyPressedCallback','sliderCallback');

function sliderCallback(src,evt)
    display(['slider state ' num2str(get(src, 'Value'))]);
end

如果无法全局访问sliderCallback函数,则可以通过函数指针设置它:

set(handles.slid, 'KeyPressedCallback',@sliderCallback);