声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2714|回复: 8

[GUI界面] MATLAB GUI的使用经验与技巧

[复制链接]
发表于 2009-2-9 09:59 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
来自《精通MATLAB GUI设计》一书,电子工业出版社,2008




MATLAB GUI的使用经验与技巧
GUI是实现人机交互的中介,具有强大的功能,可以完成许多复杂的程序模块。想熟练快捷地使用它,需要具有一定的知识储备和必要的经验技巧。
关于MATLAB GUI的入门,推荐使用MATLAB的帮助文档,仔细研读HELP是最好的办法。需要了解函数句柄等必要基础知识,熟悉各控件对象的基本属性和方法操作,知晓不同控件的合适使用条件及其特有的功能,并会采用不同的使用手段来实现相同功能的设计。
(1)菜单和控件
需要详细掌握菜单和控件。菜单很简单,就是弄清除菜单之间的关系和如何调用就可以。控件的使用主要是用好CreateFcn和Callback属性。CreateFcn中的语句就是在程序运行时,就立即执行脚本。如果希望界面可控,那么最好用Callback属性。在相应控件下,添加相应的脚本就可以实现比较复杂计算绘图等功能。
(2)事件处理
需要重点掌握事件处理,理解函数回调的机理以及不同条件下回调的处理。使用独立回调函数技术,可以让复杂的回调变得简单;全局变量是在函数的公共区说明,整个函数以及所有对函数的递归调用都可以利用全局变量;同属性'Tag'一样,'UserData'属性可在函数之间或递归函数的不同部分之间传递信息。如果需要多个变量,这些变量可以在一个容易辨识的对象的属性'UsetData'中传递;通过函数句柄来定义回调实现数据的访问和方法的实现。
3GUI设计的原则和步骤
在设计GUI的时候,要注意一定的原则和步骤,分析界面所要求实现的主要功能,明确设计任务,构思草图,设计界面和属性,编写对象的相应代码,实现控件的交互调用。
另外对于GUI在具体学科的应用,其学科的知识是基础,要掌握具体学科的相关知识的原理后,并用代码来实现,才能很好地结合MATLAB进行GUI编程。
(4)GUI实现方式的选择
最后考虑的问题是实现方式的选择:GUIDE还是全脚本?MATLAB自带的GUI设计工具GUIDE的好处就是非常容易入手,风格很像VB,相关的控件可以随便拖来用,它们的位置和大小也可以像拖windows一样方便。但是GUIDE生成的是一个fig文件,它同时还会生成一个包含了fig中放置的控件的相关回调函数的m脚本。这两个文件照理说是互相影响的,但是当你改动了其中一个文件的内容,比如在fig中删掉一个原来的控件,但m脚本中对应的该控件的回调函数却仍然存在,虽说回调函数是空的,没什么关系,但破坏了程序架构的美感,需要手动删掉这些代码。同时GUIDE还没有实现创建uitoolbox和所有axes的子对象。
用全脚本实现最好入门就是读代码,MATLAB就自带的demo,包括按钮、单选按钮、框架、复选框、文本标签、编辑文本框、滑动条、下拉菜单、列表框和双位按钮等的使用,顺便还能了解MATLAB里句柄函数的参数传递,就可以更直观而快速地掌握GUI设计的技巧了。使用M文件代码可以重复使用,可以生成非常复杂的界面,可以实现组件,创建对象,方便地在handle中存取数据,将创建对象代码与动作执行代码很好地结合起来。
当然,最好的办法是针对不同的情况来确定使用GUIDE还是全脚本,同时可以考虑结合使用来发挥各自优势。
看的越多,不如做的学来快,自己动手,不断摸索,在实践中体会到学习的快乐!

评分

1

查看全部评分

回复
分享到:

使用道具 举报

发表于 2009-2-9 11:43 | 显示全部楼层

关注一下

关注一下:lol :lol :lol :lol
 楼主| 发表于 2009-2-16 19:21 | 显示全部楼层
大伙讨论一下啊,活跃起来
 楼主| 发表于 2009-2-23 21:22 | 显示全部楼层

回复 地板 yitianjian 的帖子

没有电子版。
可以买一本书,或者上图书馆借一本看看啊,也方便。
发表于 2009-2-27 19:45 | 显示全部楼层
楼主说的很好,我的毕业论文正在用这个东西来实现
 楼主| 发表于 2009-3-2 16:18 | 显示全部楼层
发表于 2009-3-15 16:59 | 显示全部楼层
网上找不到电子书,校图书馆里的数据库里也没…

唉。。明天要上交……
 楼主| 发表于 2009-3-26 21:39 | 显示全部楼层
原帖由 albertleung 于 2009-3-15 16:59 发表
网上找不到电子书,校图书馆里的数据库里也没…

唉。。明天要上交……


啊,你这还这么紧急
发表于 2009-9-23 10:13 | 显示全部楼层

回复 5楼 wangyi_elite 的帖子

有GUI设计的电子书吗?麻烦给一份,不胜感激!donglixia1983@163.com
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-18 04:37 , Processed in 0.059455 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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