|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
# E& [# l* D) @/ B; ]2 m
MATLAB GUI控件样式简陋,功能属性有限,这个的确是很失望的事情。MATLAB的UI是通过Java框架搭成的,Java Swing很强大,不知道MathWorks为什么非要将GUI搞得那么局限!% e3 z; G. q& E
4 a: |& x1 A; s$ j6 \" O* p
Java Swing中的JLabels组件一个通用特性就是全面支持HTML/CSS。因为MATLAB所有uicontrol都是衍生于Swing组件,所以uicontrol自动继承了Swing的html特性,比如font,size,color等。
6 L! [+ E5 R. ]9 q, r' r* Y
3 E# Q: R# L" p" r$ P% d; W0 a9 V/ A比如,创建一个多种颜色的MATLAB列表框(listbox的string属性)/ T% {2 P& Y. M+ r) a! Z3 _
- 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>'}); % font
7 k' e' I7 m: m$ {. {9 U. B
; z- |/ m7 N3 @' D
' d& [( |# a" A( u7 k; E
. Y" t- l/ n9 S, m2 y+ a" \3 E# N2 J/ N8 w! b2 K9 K
另外下拉菜单(popmenu的string属性,uimenu的label属性)和所有控件提示文本(tooltips属性)也支持HTML特性
" u T0 q' R, J; X# l- 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代码不关闭也是可以的,但是不推荐% f& I7 g% x k8 R" b2 l& n0 N) x
- |$ o) S; k8 R9 q; C5 v- v6 J- X$ _; W0 O3 K3 G' v% L1 E
( s4 F! M' Z% O* @/ p1 J
/ Y4 @& N- C8 ]4 H
( d+ N5 g2 @ a% e6 J
3 P5 `# Y% y' U3 X* Y. F- h! E% H* p v0 h. M" f) b* g- z. O/ W
看着上面样式是不是觉得很炫呀?很多网友估计会很心动去尝试下9 d: N- ?8 \8 I) k# z- p$ c
- uicontrol('Style','text',... % 注意是text,静态文本框哦
- 'Position',[10,10,200,50],...
- 'String', '<html><font color="red">我是中国人</font></html>')% s, c. ] R( W. i+ V3 l) ?$ o- L
N; n6 a% C, y2 z$ ~) Z- c, l( k7 a- `3 _5 s9 j
可是却是得到下面的样子,为什么会这样呢,没有得到我们预想的结果呢?% g9 U1 d0 _& e/ y$ k
+ U2 X. e$ I5 ^! U
! n5 N% ^) P# f8 Y. U3 T7 H
) n2 G9 g) d' j, ^就是这样的,您没有眼花,代码也没有写错,是因为静态文本框(text)控件本来就不支持html代码,它是特殊的控件,我们将在另外一个主题中进行详细分解!) e. C+ k; s, U- x* P. B6 u
0 I, v0 h+ a" @! _' F! n' T
|
|