|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
GUI 是实现人机交互的中介,具有强大的功能,可以完成许多复杂的程序模块。想熟练
) z# ~1 U0 [7 u3 [8 S6 d& o+ C3 a快捷地使用它,需要具有一定的知识储备和必要的经验技巧。
9 ]- C/ g; d- T2 _5 ?
$ i b1 O0 ^6 F8 _6 R! {2 k4 V+ n% D
关于 MATLAB GUI 的入门,推荐使用 MATLAB 的帮助文档,仔细研读 HELP 是最好的办法。
* W8 |: m0 {1 }. f5 a" E# Q. B需要了解函数句柄等必要基础知识,熟悉各控件对象的基本属性和方法操作,知晓不同控件* j; H9 v" ~ F) u# D7 g
的合适使用条件及其特有的功能,并会采用不同的使用手段来实现相同功能的设计。
K( P: b: m6 q1 M
r; k; F4 U9 p
9 d# ~# @/ R/ O2 e5 I, K) q(1)菜单和控件* T& K9 z- f1 }& f
需要详细掌握菜单和控件。菜单很简单,就是弄清除菜单之间的关系和如何调用就可以。/ W% g4 S* Z+ N* L% k1 w
控件的使用主要是用好CreateFcn 和Callback 属性。CreateFcn 中的语句就是在程序运行时,7 r* W$ a/ \- P! `4 X- f4 c
就立即执行脚本。如果希望界面可控,那么最好用 Callback 属性。在相应控件下,添加相应
a. F/ i) P! ]* p的脚本就可以实现比较复杂计算绘图等功能。; W# H6 ~8 O p
5 V! f+ c$ f% d; ^" t
4 ~3 u# ?7 g/ W" W1 Y(2)事件处理
k4 [/ V8 q1 h( v需要重点掌握事件处理,理解函数回调的机理以及不同条件下回调的处理。使用独立回
1 | g8 P6 z. {( K! V7 h调函数技术,可以让复杂的回调变得简单;全局变量是在函数的公共区说明,整个函数以及
9 u3 O# a" A/ t$ U# x6 d# K- o所有对函数的递归调用都可以利用全局变量;同属性'Tag'一样,'UserData'属性可在函数之
9 f3 l( m* i" S间或递归函数的不同部分之间传递信息。如果需要多个变量,这些变量可以在一个容易辨识! Z2 S0 g' i3 O7 V
的对象的属性'UsetData'中传递;通过函数句柄来定义回调实现数据的访问和方法的实现。0 x$ a. H; D. y& I v3 m
# y' P2 a6 b, w
' M8 s. x* k; O7 T# C0 \6 N( l" h(3)GUI 设计的原则和步骤
1 J S' `, m6 Y9 W) Z, H6 O7 s在设计 GUI 的时候,要注意一定的原则和步骤,分析界面所要求实现的主要功能,明确
" D- Z& s% V; W9 k设计任务,构思草图,设计界面和属性,编写对象的相应代码,实现控件的交互调用。
% Q. `8 T% Z k( o另外对于 GUI 在具体学科的应用,其学科的知识是基础,要掌握具体学科的相关知识的
" h: P& V9 R. H) G g8 ~3 j原理后,并用代码来实现,才能很好地结合 MATLAB 进行 GUI 编程。
9 @" D0 u' ]' Y, p' Y- O
0 o- p+ ]' ?0 }3 e% }/ ^6 L Z; S$ C ^
(4)GUI 实现方式的选择2 l' z% o; c' u4 A8 ~6 _- c1 N6 G% J
最后考虑的问题是实现方式的选择:GUIDE 还是全脚本?MATLAB 自带的 GUI 设计工具
# F e6 f" Q3 c6 h% L! l& vGUIDE 的好处就是非常容易入手,风格很像 VB,相关的控件可以随便拖来用,它们的位置和) M- m# h2 Y% D% R- r! R8 N
大小也可以像拖 windows 一样方便。但是 GUIDE 生成的是一个 fig 文件,它同时还会生成一( p) v6 N8 q% Y4 J2 s7 t
个包含了 fig 中放置的控件的相关回调函数的 m 脚本。这两个文件照理说是互相影响的,但
( Y1 T6 c8 u& o是当你改动了其中一个文件的内容,比如在 fig 中删掉一个原来的控件,但 m 脚本中对应的" r/ ]& b; |; i' [, ^1 S% }0 r
该控件的回调函数却仍然存在,虽说回调函数是空的,没什么关系,但破坏了程序架构的美* y" J( ` a t" ?1 z. U/ n9 q
感,需要手动删掉这些代码。同时 GUIDE 还没有实现创建 uitoolbox 和所有 axes 的子对象。1 q$ Q8 Q6 S0 F$ E5 x- S
用全脚本实现最好入门就是读代码,MATLAB 就自带的 demo,包括按钮、单选按钮、框
$ A h6 Y$ I. i架、复选框、文本标签、编辑文本框、滑动条、下拉菜单、列表框和双位按钮等的使用,顺
* L, n$ w9 X+ N5 k) q2 r3 T便还能了解 MATLAB 里句柄函数的参数传递,就可以更直观而快速地掌握 GUI 设计的技巧了。5 z5 T9 z* s8 C) a" t) [
使用 M 文件代码可以重复使用,可以生成非常复杂的界面,可以实现组件,创建对象,方便" ?2 D7 z/ P5 W: U% P; e' _" f
地在 handle 中存取数据,将创建对象代码与动作执行代码很好地结合起来。 a! O4 T: }! u% U
|
|