GUI: how to call callback function from keyboard using 'windowkeypressfcn'?

15 ビュー (過去 30 日間)
James Ang
James Ang 2015 年 4 月 18 日
コメント済み: James Ang 2015 年 4 月 19 日
Hi all,
I've pushbutton callback function as below:
function movefront_Callback(hObject, eventdata, handles)
handles.speed.String = num2str(str2double(handles.speed.String) +1);
And I would like to call this function from the keyboard, so I've this:
function figure1_WindowKeyPressFcn(hObject, eventdata, handles)
switch eventdata.Key
case 'a'
handles.speed.String = num2str(str2double(handles.speed.String) + 1);
case 'b'
handles.speed.String = num2str(str2double(handles.speed.String) - 1);
end
The above code works but I called it directly from the handles structure. How do I call the callback function from the windowskeypress function?
e.g
switch eventdata.Key
case 'a'
@movefront_Callback(); %not working obviously
thanks in advance.

採用された回答

Geoff Hayes
Geoff Hayes 2015 年 4 月 18 日
James - all you need to do is to just call the callback directly and ensure that you pass the correct inputs. Since your callback signature is
function movefront_Callback(hObject, eventdata, handles)
then you need to pass the handle to the movefront control (this is hObject), the event data (which can be empty as it seems to be only valid for key presses and other events like that) and the handles structure. So your key press callback can become
function figure1_WindowKeyPressFcn(hObject, eventdata, handles)
switch eventdata.Key
case 'a'
movefront_Callback(handles.movefront, [], handles);
case 'b'
moveback_Callback(handles.moveback, [], handles);
end
Try the above and see what happens!

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeInteractive Control and Callbacks についてさらに検索

製品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by