MATLAB Answers

Static text and greek letter

100 views (last 30 days)
Hi,
how can I easy write "Set omega" into static text in GUI, where omega should be a greek letter?
Thanks for help

  0 Comments

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 6 Apr 2013
Edited: Walter Roberson on 8 Apr 2013
The easiest is to use a text() control instead of uicontrol('Style','text'). For text() controls, see http://www.mathworks.co.uk/matlabcentral/answers/14751-greek-alphabet-and-latex-commands-not-a-question
If you must use a uicontrol, then unless there is a method at the java level, you cannot do it with Style 'text' or 'edit'. You can, however, use 'style' 'Push' with 'enable' 'off', and then use html, such as
h = uicontrol('Style', 'push', 'enable', 'off', 'units', 'norm', 'position', [0 0 1 .1], 'String','<FONT COLOR="red">hello &omega;')

  8 Comments

Show 5 older comments
Walter Roberson
Walter Roberson on 8 Apr 2013
Did you switch to pushbutton? I noted above that you cannot do it with style 'text' or 'edit' and need to switch to 'push' with 'enable' 'off'
john
john on 8 Apr 2013
ok, thanks, it works
Miguel
Miguel on 17 Mar 2016
Do you know how to remove the border of that push button which is inside the uicontrol?

Sign in to comment.

More Answers (1)

Timothy Plummer
Timothy Plummer on 4 Jan 2017
So there is an easier way to do this, but you need to know the Unicode number for the character you want, and preferably in decimal notation. The simplest way would be to call the Unicode number, which is typically shown in hexadecimal, and call:
Unicode = ''; %%insert Unicode
char(hex2dec(Unicode))
Char will output the Unicode character which can be inserted into the uicontrol correctly. So the code you would need would be:
uicontrol('style','text','string',['Set ',char(hex2dec('3a9'))]);
Let me know if this helps.

  3 Comments

Walter Roberson
Walter Roberson on 5 Jan 2017
This depends on which MATLAB release you are using. In R2014a and earlier, characters beyond position 255 would never appear.
In R2014b and later, Unicode in uicontrol is supported, and you can even directly include the characters in the strings if you find a way to enter them. For example,
uicontrol('style','text', 'string', 'Set Ω', 'Units','norm','Position',[.1 .1 .3 .3])
However, whether Unicode characters will be saved in your .m files depends upon your MATLAB release and your operating system and your region settings, so coding in terms of char(hex2dec()) might be a practical necessity. Another approach is, for example,
uicontrol('style','text', 'string', sprintf('Set \x3a9'), 'Units','norm','Position',[.1 .1 .3 .3])
Diaa
Diaa on 7 Mar 2017
@Walter Roberson Could you refer me to the specific part of MATLAB documentation of printing characters like your approach?
\x3a9
Walter Roberson
Walter Roberson on 7 Mar 2017
Diaa: see https://www.mathworks.com/help/matlab/ref/sprintf.html#input_argument_formatSpec and scroll to "Text Before or After Formatting Operators" in the Special Characters table, the entry
Character whose ASCII code is the hexadecimal number, N \xN

Sign in to comment.

Sign in to answer this question.