|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
GUI 是实现人机交互的中介,具有强大的功能,可以完成许多复杂的程序模块。想熟练& u1 P, E( l! [' a8 d5 `
快捷地使用它,需要具有一定的知识储备和必要的经验技巧。, T+ e, |% ?' E e; N) I8 x
0 q; h$ s, D7 l+ D: G, u
0 B: I+ E, s/ J: t* p% {. e- E关于 MATLAB GUI 的入门,推荐使用 MATLAB 的帮助文档,仔细研读 HELP 是最好的办法。: ]6 \! s0 D% _+ r
需要了解函数句柄等必要基础知识,熟悉各控件对象的基本属性和方法操作,知晓不同控件/ L: \( M9 o+ Z3 `
的合适使用条件及其特有的功能,并会采用不同的使用手段来实现相同功能的设计。7 u$ ^0 @0 k" K$ S) w
* ^; F7 Q( q; ]# ]; d4 t
u1 c1 C! _. ^8 j2 w Z+ F(1)菜单和控件
; c, a0 G; |+ e" |; z& k需要详细掌握菜单和控件。菜单很简单,就是弄清除菜单之间的关系和如何调用就可以。
8 b. \) p" H$ ]! T- \控件的使用主要是用好CreateFcn 和Callback 属性。CreateFcn 中的语句就是在程序运行时,
' q( g/ h7 G3 t就立即执行脚本。如果希望界面可控,那么最好用 Callback 属性。在相应控件下,添加相应8 H6 L; `8 {' I& ]
的脚本就可以实现比较复杂计算绘图等功能。
$ n2 V0 ^0 r' m( |& W
/ k* `! Y* H6 Q* I
) }! X4 I) u& ]2 s1 o% Z/ |(2)事件处理$ o" _, y; y! U; `/ u% [ K3 v. j. m4 _
需要重点掌握事件处理,理解函数回调的机理以及不同条件下回调的处理。使用独立回
) R0 X" {- p; J- N3 S调函数技术,可以让复杂的回调变得简单;全局变量是在函数的公共区说明,整个函数以及
# q& I4 {) E2 c/ A/ K m所有对函数的递归调用都可以利用全局变量;同属性'Tag'一样,'UserData'属性可在函数之* v$ C! ^9 q& A+ L- D1 u. ?0 P
间或递归函数的不同部分之间传递信息。如果需要多个变量,这些变量可以在一个容易辨识
& ?# Y% i2 t# w! G7 \的对象的属性'UsetData'中传递;通过函数句柄来定义回调实现数据的访问和方法的实现。
! a7 |% h- K# H/ y* J8 ~. X7 J
8 O' m% }; T" f, l0 X2 V7 a
5 E9 _/ ?0 E9 K% H. H(3)GUI 设计的原则和步骤
`9 w+ h: v6 v( T/ P1 {在设计 GUI 的时候,要注意一定的原则和步骤,分析界面所要求实现的主要功能,明确
6 r- e, ]3 K" p% r设计任务,构思草图,设计界面和属性,编写对象的相应代码,实现控件的交互调用。7 @7 T8 H( ]! P7 v' ~
另外对于 GUI 在具体学科的应用,其学科的知识是基础,要掌握具体学科的相关知识的
* g9 B/ p7 T; x& j* Q( j原理后,并用代码来实现,才能很好地结合 MATLAB 进行 GUI 编程。9 y: G! R7 ~4 L h
4 f1 }) W* N3 P* \. `
; G) T: X: s2 s0 g+ H
(4)GUI 实现方式的选择5 x/ b9 r1 ]! }7 A9 m
最后考虑的问题是实现方式的选择:GUIDE 还是全脚本?MATLAB 自带的 GUI 设计工具
`& X5 h; q+ Q$ j+ d* iGUIDE 的好处就是非常容易入手,风格很像 VB,相关的控件可以随便拖来用,它们的位置和+ h! L& P3 B9 L; c
大小也可以像拖 windows 一样方便。但是 GUIDE 生成的是一个 fig 文件,它同时还会生成一
' x/ S: v' p. S' P0 c个包含了 fig 中放置的控件的相关回调函数的 m 脚本。这两个文件照理说是互相影响的,但4 k( l6 m0 G, e- E( Z) Q0 \% t
是当你改动了其中一个文件的内容,比如在 fig 中删掉一个原来的控件,但 m 脚本中对应的
% J/ @3 O( c* _该控件的回调函数却仍然存在,虽说回调函数是空的,没什么关系,但破坏了程序架构的美
" c% g# C; q9 a9 n% @9 |3 k感,需要手动删掉这些代码。同时 GUIDE 还没有实现创建 uitoolbox 和所有 axes 的子对象。4 X7 N4 N% ?1 Z5 v1 P
用全脚本实现最好入门就是读代码,MATLAB 就自带的 demo,包括按钮、单选按钮、框
' ], Q4 A. r( z架、复选框、文本标签、编辑文本框、滑动条、下拉菜单、列表框和双位按钮等的使用,顺
& b! R& O1 n5 n- W3 ~# g3 N便还能了解 MATLAB 里句柄函数的参数传递,就可以更直观而快速地掌握 GUI 设计的技巧了。4 o% f4 d' O0 l% I
使用 M 文件代码可以重复使用,可以生成非常复杂的界面,可以实现组件,创建对象,方便) p6 E& }0 Z) u% ?& G. ^
地在 handle 中存取数据,将创建对象代码与动作执行代码很好地结合起来。$ _% N; V2 d& J1 S t' j0 t
|
|