找回密码
 注册
关于网站域名变更的通知
查看: 620|回复: 1
打印 上一主题 下一主题

MATLAB GUI 的使用经验与技巧

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2018-11-1 14:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
GUI 是实现人机交互的中介,具有强大的功能,可以完成许多复杂的程序模块。想熟练
5 P* e$ O0 A0 m快捷地使用它,需要具有一定的知识储备和必要的经验技巧。
# w( K8 Q) L: i) O" \' U$ H) `! ?6 f2 M2 P% Z$ I0 h8 ^

& ^' d/ e& {4 O) X关于 MATLAB GUI 的入门,推荐使用 MATLAB 的帮助文档,仔细研读 HELP 是最好的办法。
% m8 O: g/ W! C  f/ a1 L! ]8 f7 U需要了解函数句柄等必要基础知识,熟悉各控件对象的基本属性和方法操作,知晓不同控件
3 L3 o2 ~( U( A) G/ Z的合适使用条件及其特有的功能,并会采用不同的使用手段来实现相同功能的设计。5 z0 b( |4 b5 q* D+ F, p( a
" w. E5 j, C( d6 {' V  Z

, L: u0 c9 U8 H1 _, H' {1 \(1)菜单和控件
( J; H6 \, {* l* d/ O  n需要详细掌握菜单和控件。菜单很简单,就是弄清除菜单之间的关系和如何调用就可以。
$ Q( e' a: U! H2 t! c2 I控件的使用主要是用好CreateFcn 和Callback 属性。CreateFcn 中的语句就是在程序运行时,& g1 S- x! _4 ?9 e0 a& G8 I% c, a
就立即执行脚本。如果希望界面可控,那么最好用 Callback 属性。在相应控件下,添加相应
3 a7 I- g0 C2 C! S1 U: s的脚本就可以实现比较复杂计算绘图等功能。
' Z* E$ u% g$ e; d9 L* I( T' b% J% K4 G8 I' x) u9 d" ~  m

! o  m0 A% U4 u+ b(2)事件处理
' C  n# p# S2 E1 W需要重点掌握事件处理,理解函数回调的机理以及不同条件下回调的处理。使用独立回
  J0 K; z! {7 W+ o& [: g: }9 E调函数技术,可以让复杂的回调变得简单;全局变量是在函数的公共区说明,整个函数以及
$ Z6 h: [) h0 W. @所有对函数的递归调用都可以利用全局变量;同属性'Tag'一样,'UserData'属性可在函数之
) F* l1 N! @. y5 K" G5 A1 ~- D间或递归函数的不同部分之间传递信息。如果需要多个变量,这些变量可以在一个容易辨识  X" z; A1 R8 z; p& w' h
的对象的属性'UsetData'中传递;通过函数句柄来定义回调实现数据的访问和方法的实现。' w' R( R0 D3 o5 l3 \

8 Q% @' d$ |# @+ E9 k( e$ T
: ~7 Z* O6 E% p; W8 }: t6 G
(3)GUI 设计的原则和步骤/ ^$ r( I) |1 y* H. C
在设计 GUI 的时候,要注意一定的原则和步骤,分析界面所要求实现的主要功能,明确" m9 \7 C: N' C9 \1 E# ?
设计任务,构思草图,设计界面和属性,编写对象的相应代码,实现控件的交互调用。
& w# i9 h0 D9 W$ h另外对于 GUI 在具体学科的应用,其学科的知识是基础,要掌握具体学科的相关知识的
3 G7 I: O3 _' C# X7 x# H原理后,并用代码来实现,才能很好地结合 MATLAB 进行 GUI 编程。
/ `! O' C) @' `  w0 @' D4 e
: ^' R" v: f$ ^+ B, W' o
% i" \" F% x) m0 k7 X$ n
(4)GUI 实现方式的选择
& ~* m  f1 F  Z) H0 Z最后考虑的问题是实现方式的选择:GUIDE 还是全脚本?MATLAB 自带的 GUI 设计工具
3 e5 a% O' y% C9 D$ C- |: C" b' r& UGUIDE 的好处就是非常容易入手,风格很像 VB,相关的控件可以随便拖来用,它们的位置和- @2 K/ M; X; S$ o% S: \. S
大小也可以像拖 windows 一样方便。但是 GUIDE 生成的是一个 fig 文件,它同时还会生成一4 u1 `+ J+ L3 n6 z5 h( K& k
个包含了 fig 中放置的控件的相关回调函数的 m 脚本。这两个文件照理说是互相影响的,但4 Y" n' [0 O4 s# L! H  K
是当你改动了其中一个文件的内容,比如在 fig 中删掉一个原来的控件,但 m 脚本中对应的
9 D( \9 C% t5 Q7 _1 y! P3 R该控件的回调函数却仍然存在,虽说回调函数是空的,没什么关系,但破坏了程序架构的美# z; @- S. p+ s+ n: [; X! M# x
感,需要手动删掉这些代码。同时 GUIDE 还没有实现创建 uitoolbox 和所有 axes 的子对象。, o$ ^/ }6 F# e: |  W
用全脚本实现最好入门就是读代码,MATLAB 就自带的 demo,包括按钮、单选按钮、框
  i3 u/ q& x" U! ]架、复选框、文本标签、编辑文本框、滑动条、下拉菜单、列表框和双位按钮等的使用,顺2 D  Q4 p0 n0 e' o. m( |
便还能了解 MATLAB 里句柄函数的参数传递,就可以更直观而快速地掌握 GUI 设计的技巧了。5 X" |- \" D1 [7 q
使用 M 文件代码可以重复使用,可以生成非常复杂的界面,可以实现组件,创建对象,方便9 m9 s( y* B1 {1 l: L$ P4 j+ G
地在 handle 中存取数据,将创建对象代码与动作执行代码很好地结合起来。$ O2 H# Q3 F' ]- V; E/ Z' K2 z
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-23 16:59 , Processed in 0.156250 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表