|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
6 w6 q% x1 i7 }$ i9 c n
MATLAB GUI控件样式简陋,功能属性有限,这个的确是很失望的事情。MATLAB的UI是通过Java框架搭成的,Java Swing很强大,不知道MathWorks为什么非要将GUI搞得那么局限!' \. o( [0 C7 G9 n' {2 a5 P
: X8 r. ?( P, N# L: CJava Swing中的JLabels组件一个通用特性就是全面支持HTML/CSS。因为MATLAB所有uicontrol都是衍生于Swing组件,所以uicontrol自动继承了Swing的html特性,比如font,size,color等。
- j* } P0 y9 e( W/ t
* p) B3 \2 ] n+ i% S. l比如,创建一个多种颜色的MATLAB列表框(listbox的string属性)/ j" g, R# r0 s6 C
- uicontrol('Style','list',...
- 'Position',[10,10,70,70],...
- 'String', ...
- {'<html><font color="red">Hello</font></html>',... % font
- 'world',... % 正常文本
- '<html><font style="font-family:impact;color:green"><i>What a</i></font></html>',... % font和i
- '<html><font color="blue" face="Comic Sans MS">nice day!</font></html>'}); % font5 G9 H9 D- O% o5 k4 z) l
) T+ ]1 ~& n& ]5 X$ B# H
* o5 f; u- F, }) p7 ]4 Q
# \) P3 K/ ]* A' g4 q
$ K* [2 e' P9 j: e6 h另外下拉菜单(popmenu的string属性,uimenu的label属性)和所有控件提示文本(tooltips属性)也支持HTML特性
( _ j0 N+ e e- uicontrol('Style','popup',...
- 'Position',[10,10,150,100],...
- 'String', ...
- {'<html><body bgcolor="green">green background</body></html>', ...
- '<html><font color="red" size="+2">Large red font</font></html>', ...
- '<html><body bgcolor="#FF00FF">< PRE>fixed-width font'}); % html代码不关闭也是可以的,但是不推荐
. X% s' S$ s. Z$ ^8 W/ P7 N" S1 a+ ~
+ g& T0 p4 d3 Y. Y! t7 K8 K( _" V$ ?% ~1 a$ O
1 I' ?9 j6 u# | [: b
' Y3 D" u. T( a3 h$ r5 I/ ?8 l9 r% R9 k
4 G8 W7 p; E# G
$ e( t( V" v. z1 P
看着上面样式是不是觉得很炫呀?很多网友估计会很心动去尝试下/ X) n; O0 g9 {; r9 N) N7 m
- uicontrol('Style','text',... % 注意是text,静态文本框哦
- 'Position',[10,10,200,50],...
- 'String', '<html><font color="red">我是中国人</font></html>')9 i/ J6 \) f: `$ ^* y
2 U' Y H' {0 D% x
3 y- L- W7 ~: T6 A% L可是却是得到下面的样子,为什么会这样呢,没有得到我们预想的结果呢?# H9 m4 m, B9 O+ ^' j+ Q8 a5 M d
! m! b* Y) w1 b3 U
4 I0 ~5 M2 s9 e4 {/ O; T! L+ M
# e4 p. D+ E0 ], Y6 X- i) d0 z% M
就是这样的,您没有眼花,代码也没有写错,是因为静态文本框(text)控件本来就不支持html代码,它是特殊的控件,我们将在另外一个主题中进行详细分解!# L7 v7 h5 }; d1 E( [
2 k. V) w$ \. @( S |
|