|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
GUI 是实现人机交互的中介,具有强大的功能,可以完成许多复杂的程序模块。想熟练9 j* m8 K D5 K- P- \( Y
快捷地使用它,需要具有一定的知识储备和必要的经验技巧。. q9 ]& d# W! z @
: G5 w8 b% F2 Y5 w0 V1 d1 C
+ P7 o6 @& C, S0 `, L: `! J$ ?/ A关于 MATLAB GUI 的入门,推荐使用 MATLAB 的帮助文档,仔细研读 HELP 是最好的办法。
2 ]+ f/ N' a- `4 j3 R- b% G需要了解函数句柄等必要基础知识,熟悉各控件对象的基本属性和方法操作,知晓不同控件9 ^9 [ v, B8 C3 [' v9 [
的合适使用条件及其特有的功能,并会采用不同的使用手段来实现相同功能的设计。
8 {. @* ]- J, F: K: G# T, q9 i R! ?
q4 h, E& Z' G9 u+ H(1)菜单和控件
7 m. |, ]! `$ H( C4 d需要详细掌握菜单和控件。菜单很简单,就是弄清除菜单之间的关系和如何调用就可以。# t& m7 W$ b9 l. f0 Q2 l) g
控件的使用主要是用好CreateFcn 和Callback 属性。CreateFcn 中的语句就是在程序运行时,
! C5 w+ m+ _. p0 `$ x就立即执行脚本。如果希望界面可控,那么最好用 Callback 属性。在相应控件下,添加相应
+ n& ^6 f* Y+ v% }; e/ i的脚本就可以实现比较复杂计算绘图等功能。& }7 j& S% X$ B0 h9 ]$ p" G: k
8 _2 U2 c1 c5 x2 ~. q' z% f
; Y8 k4 M2 c! z' c, g# a. w) q4 ?* l(2)事件处理
& D, [- X* F( j2 F' ^需要重点掌握事件处理,理解函数回调的机理以及不同条件下回调的处理。使用独立回
0 ?- a1 z# Q" G" V" x调函数技术,可以让复杂的回调变得简单;全局变量是在函数的公共区说明,整个函数以及+ U3 F+ ]2 t5 g
所有对函数的递归调用都可以利用全局变量;同属性'Tag'一样,'UserData'属性可在函数之( |! V7 ?) _" c2 { f/ o* w) B" ^
间或递归函数的不同部分之间传递信息。如果需要多个变量,这些变量可以在一个容易辨识& M* x8 J( }. S
的对象的属性'UsetData'中传递;通过函数句柄来定义回调实现数据的访问和方法的实现。& V& y/ e8 o5 _* J% l
% r& r$ K1 q ]$ a7 l* n7 J
) }3 ~& k/ ~: p4 C5 ^1 C! I(3)GUI 设计的原则和步骤. `3 \. _$ V# i+ x, E
在设计 GUI 的时候,要注意一定的原则和步骤,分析界面所要求实现的主要功能,明确$ x1 t5 ^; Y. ]- U( i7 T0 i
设计任务,构思草图,设计界面和属性,编写对象的相应代码,实现控件的交互调用。8 P; o9 L8 A9 Z8 N, j% x Z
另外对于 GUI 在具体学科的应用,其学科的知识是基础,要掌握具体学科的相关知识的7 _4 j2 o3 P a( c
原理后,并用代码来实现,才能很好地结合 MATLAB 进行 GUI 编程。, l) S7 \* U. Y, R* j( i
! {0 O2 I( y, W8 U6 g9 B7 x+ i
) l' h% K% `8 e: T(4)GUI 实现方式的选择
& [$ }% t# K$ h8 C4 `最后考虑的问题是实现方式的选择:GUIDE 还是全脚本?MATLAB 自带的 GUI 设计工具
3 c. ^4 ]3 H2 q! z1 }* i' H, XGUIDE 的好处就是非常容易入手,风格很像 VB,相关的控件可以随便拖来用,它们的位置和0 N( O. ]- I) H4 p
大小也可以像拖 windows 一样方便。但是 GUIDE 生成的是一个 fig 文件,它同时还会生成一
! _- g5 |: f; o: r个包含了 fig 中放置的控件的相关回调函数的 m 脚本。这两个文件照理说是互相影响的,但 \0 p" W/ q/ o( Z, v3 Q( o& D
是当你改动了其中一个文件的内容,比如在 fig 中删掉一个原来的控件,但 m 脚本中对应的
* N" U) D! L; [8 }1 m. F该控件的回调函数却仍然存在,虽说回调函数是空的,没什么关系,但破坏了程序架构的美
, h, J- y$ P. n: K* w# B6 B感,需要手动删掉这些代码。同时 GUIDE 还没有实现创建 uitoolbox 和所有 axes 的子对象。
% \. J/ G0 v6 k6 S) Z6 w4 R6 S用全脚本实现最好入门就是读代码,MATLAB 就自带的 demo,包括按钮、单选按钮、框
: z5 f) {* `, a架、复选框、文本标签、编辑文本框、滑动条、下拉菜单、列表框和双位按钮等的使用,顺
' X3 ]' E; A; A n3 G; m. T/ x0 n+ A便还能了解 MATLAB 里句柄函数的参数传递,就可以更直观而快速地掌握 GUI 设计的技巧了。
& z, z6 G- p9 z' S5 m* | j使用 M 文件代码可以重复使用,可以生成非常复杂的界面,可以实现组件,创建对象,方便
! R2 c+ l- p( Y% B+ u$ s地在 handle 中存取数据,将创建对象代码与动作执行代码很好地结合起来。
! q: `: l& b S4 Y. J% T' i C |
|