有没有办法做到这一点?我想提供有关模拟过程中发生的事情的信息。我显然每次都可以将文字设置为previousString + newString
,但这需要花费很多时间。
答案 0 :(得分:0)
目前尚不清楚模拟日志是如何生成的,也许是保存的(在日志文件中?是否可以直接在GUI中使用?)。
然而,一个可能的解决方案可能是:
handles
将我已经构建了一个简单的GUI,其中包含一个最多4行的文本框和一个用于添加字符串的按钮(用于模拟"模拟日志)。
字符串计数器已在GUI OpeningFcn
中初始化,如下所示:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Get GUIDATA
gui_my_data=guidata(handles.figure1);
% Add string counter to handles
gui_my_data.str_cnt=0;
% Update GUIDATA
guidata(handles.figure1,gui_my_data);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
在按钮Callback
中,我插入了更新文本框内容的代码,如下所示:
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Get GUIDATA
gui_my_data=guidata(handles.figure1);
% Get string counter from GUIDATA
n_rows=gui_my_data.str_cnt;
% If maximum rows to be diplayed not reached, add the new string
if(n_rows < 4)
n_rows=n_rows+1;
if(n_rows == 1)
c_str=cellstr(get(handles.text1,'string'));
else
c_str=get(handles.text1,'string');
end
% Generate the new string
c_str{n_rows}=['row #' num2str(n_rows)];
% Update textbox content
set(handles.text1,'string',c_str);
% Save string counter
gui_my_data.str_cnt=n_rows;
else
% If maximum rows to be diplayed reached, get the strings
c_str=get(handles.text1,'string');
% Shift up previous string
c_str(1:3)=c_str(2:4);
n_rows=n_rows+1;
gui_my_data.str_cnt=n_rows;
% Generate the new string and add it to the textbox
c_str{4}=['riga #' num2str(n_rows)];
set(handles.text1,'string',c_str);
end
% Update GUIDATA
guidata(handles.figure1,gui_my_data);
希望这有帮助。