我在MATLAB2015中使用GUIDE创建GUI。我有一个下拉菜单,用户选择要查看的消息,然后单击Add
按钮将消息名称添加到列表框中,并在表格中显示它包含的数据。
我的问题是,如果我想添加多条消息,而不是添加该消息,它会覆盖前一条消息。以下是我目前的代码。
addData = getappdata(handles.msgSel_menu, 'Data');
boxMsg = get(handles.msgSel_menu,'String');
boxMsgVal = get(handles.msgSel_menu,'Value');
set(handles.activeDataBox,'String',boxMsg{boxMsgVal});
set(handles.data_table, 'Data', addData);
如果之前已多次这样做,请道歉,但由于我对MATLAB相对较新,我可以对任何修复我的问题的代码做一点解释。
答案 0 :(得分:1)
您必须从列表框中获取初始字符串单元格,然后将所需元素添加到单元格中。从生成的单元格变量中,使用set
命令更新列表框。
这是一个简单的例子。
addData = getappdata(handles.msgSel_menu, 'Data');
current_data = get(handles.activeDataBox, 'String'); % get the current string
new_data = current_data; % set new_data to the initial string ...
new_data{ length(current_data) + 1 } = addData ; % ... then you add the desired element by incrementing the cell
set(handles.activeDataBox, 'String', new_data); % update your listbox
编辑:代码已更新。