【问题标题】:Add items to listbox using pushbutton and drop down menu in MATLAB使用 MATLAB 中的按钮和下拉菜单将项目添加到列表框
【发布时间】:2017-07-04 08:22:40
【问题描述】:

我正在使用 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 比较陌生,我可以对任何解决我的问题的代码做一点解释。

【问题讨论】:

    标签: matlab


    【解决方案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
    

    编辑:代码已更新。

    【讨论】:

    • 感谢您的回答。我在调整此代码时遇到的问题是它不断抛出错误Cell contents assignment to a non-cell array object。这与我试图读取用户在下拉菜单中选择的字符串有关吗?
    • 看来你的字符串变量不是单元格。在我的代码中,从列表框中获取的数据是一个单元格。如果是下拉菜单,它也应该是一个单元格。使用get 命令以相同的方式获取字符串数据。
    • 好的,这就是我通过调整您的代码所做的。你能告诉我我是否完全误解了它吗? boxMsg = get(handles.msgSel_menu,'String'); current_data = get(handles.activeDataBox, 'String'); boxMsg = current_data; new_data = boxMsg{ length(current_data) + 1 }; set(handles.activeDataBox, 'String', new_data); % update your listbox我的列表框叫做activeDataBox,我的下拉菜单叫做msgSel_menu。
    猜你喜欢
    • 1970-01-01
    • 2016-08-28
    • 1970-01-01
    • 2016-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    相关资源
    最近更新 更多