|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
GUI 是实现人机交互的中介,具有强大的功能,可以完成许多复杂的程序模块。想熟练
: U" J. X) U6 I( f快捷地使用它,需要具有一定的知识储备和必要的经验技巧。
% R1 @2 [2 A% X0 b$ _5 n( K
! Q% ~ ]6 t! Q' o' P7 m
8 W$ Q: \' C% S, m6 @, {% E& W关于 MATLAB GUI 的入门,推荐使用 MATLAB 的帮助文档,仔细研读 HELP 是最好的办法。1 c* o+ k7 u" q" ^9 I
需要了解函数句柄等必要基础知识,熟悉各控件对象的基本属性和方法操作,知晓不同控件
) x( e! m7 T2 s! J的合适使用条件及其特有的功能,并会采用不同的使用手段来实现相同功能的设计。5 r7 y2 y5 r3 v1 r5 {
$ ?, Z' h4 F, f% s9 c
2 U d% ^6 S" s. X4 x
(1)菜单和控件, L9 V$ m3 W! k" ^% c* a9 |% T7 n
需要详细掌握菜单和控件。菜单很简单,就是弄清除菜单之间的关系和如何调用就可以。% l$ M" @4 _0 [* Z( E0 T
控件的使用主要是用好CreateFcn 和Callback 属性。CreateFcn 中的语句就是在程序运行时,
0 q* U5 _. K; [: U7 W; Q" H! ~: v2 V就立即执行脚本。如果希望界面可控,那么最好用 Callback 属性。在相应控件下,添加相应
+ {5 n/ A5 ^/ u+ {" Q( u; |的脚本就可以实现比较复杂计算绘图等功能。2 l3 o" Q/ g. n" W' t. G9 `
; K4 o$ f; x* k/ ^' W2 P" ]
% O+ W3 D- `& Y3 ?(2)事件处理
. [ M2 f) h: [5 n9 B需要重点掌握事件处理,理解函数回调的机理以及不同条件下回调的处理。使用独立回) t7 `; T) {. H& w8 H! a4 d0 O: y
调函数技术,可以让复杂的回调变得简单;全局变量是在函数的公共区说明,整个函数以及
- ^0 G0 c- L5 _. I所有对函数的递归调用都可以利用全局变量;同属性'Tag'一样,'UserData'属性可在函数之
3 c4 o3 _9 K( E- i, \间或递归函数的不同部分之间传递信息。如果需要多个变量,这些变量可以在一个容易辨识
' D, b. V& G0 f3 C1 E的对象的属性'UsetData'中传递;通过函数句柄来定义回调实现数据的访问和方法的实现。
4 P/ Z& y3 }# w0 A, G" ^0 e: C3 ?$ s9 s3 Y4 J1 C, o
* d3 H. a( j4 m+ r6 o# l+ k4 k' E1 `
(3)GUI 设计的原则和步骤, R5 t6 L% ^. ^% J3 I, [
在设计 GUI 的时候,要注意一定的原则和步骤,分析界面所要求实现的主要功能,明确
6 b" ?7 x2 X3 [6 j( `( h) Q" O, R设计任务,构思草图,设计界面和属性,编写对象的相应代码,实现控件的交互调用。
, x9 N8 @( k3 z# }另外对于 GUI 在具体学科的应用,其学科的知识是基础,要掌握具体学科的相关知识的
, @. m7 ] L, o/ [5 n4 [. }9 W原理后,并用代码来实现,才能很好地结合 MATLAB 进行 GUI 编程。
+ j) T$ R' b. J" P
) d. U# j8 T$ `3 b+ P+ L1 P! ` f' H; s
(4)GUI 实现方式的选择
) N) M; K# I3 W4 B R( m/ Q4 s最后考虑的问题是实现方式的选择:GUIDE 还是全脚本?MATLAB 自带的 GUI 设计工具
2 x4 Q) z, y7 CGUIDE 的好处就是非常容易入手,风格很像 VB,相关的控件可以随便拖来用,它们的位置和
: ?+ O8 m+ ^, p3 t8 e/ {大小也可以像拖 windows 一样方便。但是 GUIDE 生成的是一个 fig 文件,它同时还会生成一
/ Z6 W9 n# h6 m" E个包含了 fig 中放置的控件的相关回调函数的 m 脚本。这两个文件照理说是互相影响的,但$ D+ d; E, d/ f4 Q0 u
是当你改动了其中一个文件的内容,比如在 fig 中删掉一个原来的控件,但 m 脚本中对应的8 @: J. |1 N4 m& y( r5 J
该控件的回调函数却仍然存在,虽说回调函数是空的,没什么关系,但破坏了程序架构的美
5 C6 G9 p+ z9 u Y/ T感,需要手动删掉这些代码。同时 GUIDE 还没有实现创建 uitoolbox 和所有 axes 的子对象。& a" l: a2 D- {$ J
用全脚本实现最好入门就是读代码,MATLAB 就自带的 demo,包括按钮、单选按钮、框
% |) M5 j/ q( N ~$ k' V) J$ _1 \架、复选框、文本标签、编辑文本框、滑动条、下拉菜单、列表框和双位按钮等的使用,顺! y+ F# ~5 f2 ^2 g' _3 `
便还能了解 MATLAB 里句柄函数的参数传递,就可以更直观而快速地掌握 GUI 设计的技巧了。# g. j3 d1 b' _) h! W
使用 M 文件代码可以重复使用,可以生成非常复杂的界面,可以实现组件,创建对象,方便1 e9 E8 O& }4 M
地在 handle 中存取数据,将创建对象代码与动作执行代码很好地结合起来。/ B6 R6 u9 s9 J4 M
|
|