0

キーが押されたときに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」」というエラーが返されます。解決方法は?

4

1 に答える 1

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);
于 2012-09-12T05:26:27.083 に答える