Multi-colored pop-up menu entries
2 ビュー (過去 30 日間)
古いコメントを表示
Is there a way to make a gui pop-up menu display its list of selections with different text colors? What about different fonts and typesetting (Italics, Boldface, etc...)
0 件のコメント
採用された回答
Hugo
2013 年 6 月 11 日
Yes, try this:
uicontrol('style','popup','string',{'<FONT COLOR="red" SIZE="10" FACE="ARIAL">*_Here_*','<FONT COLOR="blue" SIZE="4" FACE="Courier">*There*','<FONT COLOR="maroon" SIZE="6" FACE="GEORGIA">Anywhere'})
Basically, I'm just using HTML. Take a look at each element in the cell of strings. Here is the first one.
'<FONT COLOR="red" SIZE="10" FACE="ARIAL">*_Here_*'
There are many ways you can format text in HTML. You can find that in google, but if you have no idea at all, you can start by taking a look at http://www.tizag.com/htmlT/font.php and then try to find other more complete tutorials if you need so.
Hope this helps. Best regards
その他の回答 (1 件)
Matt Stead
2024 年 12 月 22 日
編集済み: Matt Stead
2024 年 12 月 22 日
This worked better for me. Largely copied & pasted from something I'm working on, so edit as necessary.

% set colors
DARK_RED = [0.63 0.08 0.18];
DARK_ORANGE = [0.91 0.45 0.05];
DARK_YELLOW = [0.93 0.69 0.13];
DARK_GREEN = [0.0 0.45 0.0];
DARK_BLUE = [0.0 0.45 0.74];
DARK_PURPLE = [0.49 0.18 0.56];
% build HTML strings
part1 = '<HTML><FONT bgcolor="';
part2 = '" color="';
part3 = '">     <FONT bgcolor="#FFFFFF" color="#000000">  ';
part4 = '</FONT></HTML>';
hex_str = sprintf('#%02x%02x%02x', round(DARK_RED(1) * 255), round(DARK_RED(2) * 255), round(DARK_RED(3) * 255));
hmtl_strings{1} = [part1 hex_str part2 hex_str part3 'Red' part4];
hex_str = sprintf('#%02x%02x%02x', round(DARK_ORANGE(1) * 255), round(DARK_ORANGE(2) * 255), round(DARK_ORANGE(3) * 255));
hmtl_strings{2} = [part1 hex_str part2 hex_str part3 'Orange' part4];
hex_str = sprintf('#%02x%02x%02x', round(DARK_YELLOW(1) * 255), round(DARK_YELLOW(2) * 255), round(DARK_YELLOW(3) * 255));
hmtl_strings{3} = [part1 hex_str part2 hex_str part3 'Yellow' part4];
hex_str = sprintf('#%02x%02x%02x', round(DARK_GREEN(1) * 255), round(DARK_GREEN(2) * 255), round(DARK_GREEN(3) * 255));
hmtl_strings{4} = [part1 hex_str part2 hex_str part3 'Green' part4];
hex_str = sprintf('#%02x%02x%02x', round(DARK_BLUE(1) * 255), round(DARK_BLUE(2) * 255), round(DARK_BLUE(3) * 255));
hmtl_strings{5} = [part1 hex_str part2 hex_str part3 'Blue' part4];
hex_str = sprintf('#%02x%02x%02x', round(DARK_PURPLE(1) * 255), round(DARK_PURPLE(2) * 255), round(DARK_PURPLE(3) * 255));
hmtl_strings{6} = [part1 hex_str part2 hex_str part3 'Purple' part4];
% build popup
recPopup = uicontrol('Parent', d, ...
'Position', [10 (y_offset + 5) 110 17], ...
'Style', 'popupmenu', ...
'FontSize', SYS_FONT_SIZE, ...
'String', hmtl_strings, ...
'Value', 1, ...,
'HorizontalAlignment', 'left', ...
'Interruptible', 'off', ...
'BusyAction', 'cancel');
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Annotations についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!