How can you add an image to a popupmenu using guide? An example picture of what I am trying to do is shown below. I have been trying to figure this out with no luck. Any help is appreciated.

 採用された回答

Image Analyst
Image Analyst 2014 年 11 月 16 日

2 投票

You can get that at Yair's site undocumented MATLAB.

その他の回答 (1 件)

Jan
Jan 2014 年 11 月 15 日

2 投票

You can include images using HTML:
Icon = fullfile(matlabroot,'/toolbox/matlab/icons/matlabicon.gif');
IconURI = ['"file:/', strrep(Icon, '\', '/'), '"'];
uicontrol('Style', 'popupmenu', ...
'String', {'Hello', ['<html><img src=', IconURI, '> String']})

4 件のコメント

Christopher
Christopher 2014 年 11 月 16 日
How would I implement this if I created the popupmenu using GUIDE? So I have something like:
% --- Outputs from this function are returned to the command line.
function varargout = Sections_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: contents = cellstr(get(hObject,'String')) returns popupmenu3 contents as cell array
% contents{get(hObject,'Value')} returns selected item from popupmenu3
Image Analyst
Image Analyst 2014 年 11 月 16 日
Try
set(handles.popup1, 'String', {'Hello', ['<html><img src=', IconURI, '> String']})
Christopher
Christopher 2014 年 11 月 16 日
Awesome, that seems to work. Now I just need to figure out how to adjust the spacing. The icon show's up almost on the text.
Is it better to leave the popupmenu strings empty and just reference them this way when using the images? So If I want to use there selection to perform operations such as:
contents = get(hObject,'Value')
switch contents
case 1
set(handles.edit1, 'Visible', 'off');
set(handles.text5, 'Visible', 'off');
case 2
% a=imread('11.png');
% imshow(a);
otherwise
end
Image Analyst
Image Analyst 2014 年 11 月 16 日
That's not right. Look at the code in comments. What you call contents is actually the index that is selected. To get the contents and index:
selectedIndex = get(handles.popup1, 'Value');
allContents = get(handles.popup1,'string');
selectedContents = allContents{selectedIndex};

サインインしてコメントする。

カテゴリ

ヘルプ センター および File ExchangeStartup and Shutdown についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by