这是一个 MATLAB 图形用户界面。我有一个while循环正在运行。但是在循环中我需要使用不同回调的键盘输入。有没有办法或者可以在循环中执行该回调?
注意:我正在使用指南
这是一个 MATLAB 图形用户界面。我有一个while循环正在运行。但是在循环中我需要使用不同回调的键盘输入。有没有办法或者可以在循环中执行该回调?
注意:我正在使用指南
是的,这是可能的。您只需要从按键回调中获取字符数据到循环中的回调即可。一种方法是通过图形 guidata。
例如,如果您的循环是从按钮回调运行的,并且您希望在图中看到按键,则可以使用以下命令:
按钮回调
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
fig = get(hObject,'Parent');
for i=1:1000
pause(0.01);
% Get the latest guidata
handles = guidata(fig);
if isfield(handles,'KeyData' ) && ~isempty(handles.KeyData)
fprintf(1,'Pressed : %s\n', handles.KeyData.Character);
% Clear the keydata we have now handled.
handles.KeyData = [];
guidata(fig,handles);
end
end
图按键回调
% --- Executes on key press with focus on figure1 and none of its controls.
function figure1_KeyPressFcn(hObject, eventdata, handles)
% Store the keypress event data for use in the looping callback
handles.KeyData = eventdata;
guidata(hObject,handles);