【问题标题】:How to get the value of an uicomponent slider on Matlab when a key is pressed?按下键时如何在Matlab上获取uicomponent滑块的值?
【发布时间】:2012-09-04 20:24:20
【问题描述】:

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)

滑块工作正常,但是当我按下一个键时,这会返回错误“未定义变量“handles”或类“handles.slid.value”。 如何解决?

【问题讨论】:

    标签: matlab uislider jslider uicomponents


    【解决方案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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-21
      • 1970-01-01
      • 2012-09-23
      • 1970-01-01
      • 2017-09-09
      • 1970-01-01
      相关资源
      最近更新 更多