Get multiples item from listbox

15 次查看(过去 30 天)
Dear all,
I have a listbox in a GUI from which I want to retrieve the value of different items. I have set up the "Max" value to 2 (and the "Min" to 0). With this I can select 2 items in my list. But, when I want to get the value of the two selected items with:
contents = cellstr(get(hObject,'String'))
selected_file=contents{get(hObject,'Value')}
It is only giving me the value of the first item in the list as a string.
How I can get an array of the two selected items then? I'm sure it is very simple but I can't find the solution.
Thanks for your help.

回答(3 个)

Adam
Adam 2017-2-2
编辑:Adam 2017-2-2
selected_file=contents( get(hObject,'Value') )
should work. Or just
selected_file = hObject.String( hObject.Value );
in one line (R2014b or later - the equivalent get style works for earlier versions)

Nicolas Giret
Nicolas Giret 2017-2-2
Thanks Adam,
It is indeed giving the "Value" ([1 2] if I select the two first items).
But actually, I wasn't clear enough. Instead of the "Value", I rather wanted to get the "String" of these 2 items which I get with:
contents = (get(hObject,'Value'))
str_contents = cellstr(get(hObject,'String'))
selected_items=str_contents(contents)
Perhaps it is not really elegant, but it's working !
  1 个评论
Adam
Adam 2017-2-2
Well in your original question you extracted the string into contents so I used what you had written there and didn't bother to repeat it.

请先登录,再进行评论。


Jan
Jan 2017-2-2
编辑:Jan 2017-2-2
Older Matlab versions contained the function popupstr for this job. Unfortunately this small but useful piece of code has been removed. Here is a replacement, which handles single and multi-selction listboxes and popup menus, strings, CHAR matrices and cell strings:
selected_items = GetSelection(hObject)

类别

Help CenterFile Exchange 中查找有关 Loops and Conditional Statements 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by