【问题标题】:Matlab GUI, two listbox, pass the data from listbox1 to listbox2 and appending to the older dataMatlab GUI,两个列表框,将数据从列表框1传递到列表框2并附加到旧数据
【发布时间】:2014-10-04 05:36:55
【问题描述】:

在listbox1中,我有一些数据,现在我选择其中一些并单击按钮,这些选择的数据可以显示在listbox2中。然后我继续选择listbox1中的数据并单击按钮,listbox2中的旧数据消失,新数据显示在listbox2中。回调函数中的代码如下:

function pushbutton1_Callback(hObject, eventdata, handles)
   list_entries = get(handles.listbox1,'String');
   index_selected = get(handles.listbox1,'Value');
   Length = length(index_selected);
   Newlist = list_entries;
   for i=1:Length
      n = index_selected(i);
      handles.element(i) = list_entries(n)
      if i==1
         Newlist(n) = []
      else
         Newlist(n-1) = []
      end
   end

   set(handles.listbox1,'String',Newlist);
   set(handles.listbox2,'String',handles.element);

帮我解决这个问题,非常感谢。

【问题讨论】:

    标签: matlab user-interface


    【解决方案1】:

    如果您只是想用其他字符串替换列表框中的数据(即字符串),您不必经历实际删除旧数据的过程。您只需将列表框 1 中的字符串分配给列表框 2 即可。

    function pushbutton1_Callback(hObject, eventdata, handles)
    
    set(handles.listbox2,'String',get(handles.listbox1,'String'));
    

    EDIT 根据您的评论,您似乎想将新数据/字符串(来自列表框 1)附加到列表框 2 中的现有字符串中。您可以按如下方式轻松连接字符串元胞数组:

    假设列表框 1 和列表框 2 中的字符串照常获取:

    String1 = get(handles.listbox1,'String');
    String2 = get(handles.listbox2,'String');
    

    例如String1 = {'A' 'B' 'C'}String2 = {'D' 'E' 'F'}

    然后您可以连接元胞数组并设置 listbox2 的字符串属性,如下所示:

    NewString = [String1 String2]
    

    给出这个:

    NewString = 
    
        'A'    'B'    'C'    'D'    'E'    'F'
    

    那么就用这个

    set(handles.listbox2,'String',NewString);
    

    你可以走了。

    希望现在没事。

    【讨论】:

    • 不,我不想简单地替换。我想将 boxlist1 中的选定项目添加到 boxlist2 中。用户将选择任何项目并将它们传递给 listbox2。
    • 还有一个问题:如果我选择 listbox1 中的所有数据并按下按钮,列表框就会消失。你知道这是怎么回事吗?
    • 嗯,不,这不应该发生。也许您使用了诸如上面的 set(handles...] = [] 之类的赋值并删除了列表框?或者您可能将“可见”属性设置为“关闭”?
    • 哦,我已经解决了。添加这个和结尾: set(handles.listbox1,'Value',1);
    猜你喜欢
    • 2019-09-08
    • 1970-01-01
    • 2020-09-13
    • 2021-02-06
    • 2021-08-15
    • 2021-05-01
    • 1970-01-01
    • 2016-08-14
    • 2019-10-12
    相关资源
    最近更新 更多