這是一個MATLAB GUI。我有一個while循環運行。但在循環中,我需要使用不同的回調鍵盤輸入。有沒有辦法或者有可能在循環中執行回調?MATLAB GUI中的迴路中的回調函數
注意:我正在使用GUIDE
這是一個MATLAB GUI。我有一個while循環運行。但在循環中,我需要使用不同的回調鍵盤輸入。有沒有辦法或者有可能在循環中執行回調?MATLAB GUI中的迴路中的回調函數
注意:我正在使用GUIDE
是的,這是可能的。您只需要將按鍵回調中的字符數據轉換爲循環中的回調。做這件事的一種方法是通過figure 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);
你的意思是在while循環中你想要鍵盤輸入來調用while循環中的各種函數嗎? – voxeloctree
這些是GUIDE – Chandough
Ahhhhh生成的GUI的回調函數,與我的想法完全不同。感謝您的澄清。 – voxeloctree