QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3587|回复: 3
打印 上一主题 下一主题

MATLAB GUI的使用经验与技巧

[复制链接]
字体大小: 正常 放大
wa2003        

1

主题

0

听众

4

积分

升级  80%

该用户从未签到

跳转到指定楼层
1#
发表于 2008-1-22 09:46 |只看该作者 |倒序浏览
|招呼Ta 关注Ta

----摘自《精通MATLAB GUI设计》一书

GUI是实现人机交互的中介,具有强大的功能,可以完成许多复杂的程序模块。想熟练快捷地使用它,需要具有一定的知识储备和必要的经验技巧。

关于MATLAB GUI的入门,推荐使用MATLAB的帮助文档,仔细研读HELP是最好的办法。需要了解函数句柄等必要基础知识,熟悉各控件对象的基本属性和方法操作,清楚不同控件的合适使用条件及其特有的功能,并会采用不同的使用手段来实现相同功能的设计。

1)菜单和控件

需要详细掌握菜单和控件。菜单很简单,就是弄清楚菜单之间的关系和如何调用。控件的使用主要是用好CreateFcnCallback属性。CreateFcn中的语句是在程序运行时就立即执行脚本。如果希望界面可控,那么最好用Callback属性。在相应控件下,添加相应的脚本就可以实现比较复杂的计算绘图等功能。

2)事件处理

需要重点掌握事件处理,理解函数回调的机理以及不同条件下回调的处理。使用独立回调函数技术,可以让复杂的回调变得简单;全局变量是在函数的公共区说明,整个函数以及所有对函数的递归调用都可以利用全局变量;同属性Tag一样,UserData属性可在函数之间或递归函数的不同部分之间传递信息。如果需要多个变量,这些变量可以在一个容易辨识的对象的属性UsetData中传递;通过函数句柄来定义回调实现数据的访问和方法的实现。

3GUI的设计原则和步骤

在设计GUI的时候,要注意一定的原则和步骤,分析界面所要求实现的主要功能,明确设计任务,构思草图,设计界面和属性,编写对象的相应代码,实现控件的交互调用。

另外对于GUI在具体学科的应用,其学科的知识是基础,掌握具体学科的相关知识并用代码来实现,才能很好地结合MATLAB进行GUI编程。

4GUI实现方式的选择

最后考虑的问题是实现方式的选择:GUIDE还是全脚本?MATLAB自带的GUI设计工具GUIDE的好处是非常容易入手,风格很像VB,相关的控件可以随便用,它们的位置和大小也可以像Windows一样方便。但是GUIDE生成的是一个fig文件,它同时还会生成一个包含了fig中放置的控件的相关回调函数的m脚本。这两个文件照理说是互相影响的,但是当你改动了其中一个文件的内容,比如在fig中删掉一个原来的控件,m脚本中对应的该控件的回调函数却仍然存在,虽说回调函数是空的,但破坏了程序架构的美感,需要手动删掉这些代码。同时GUIDE还没有实现创建uitoolbox和所有axes的子对象。

用全脚本实现的最好入门就是读代码,MATLAB自带demo,包括按钮、单选按钮、框架、复选框、文本标签、编辑文本框、滑动条、下拉菜单、列表框和双位按钮等,顺便还能了解MATLAB里句柄函数的参数传递,可以更直观而快速地掌握GUI设计的技巧。使用M文件代码可以重复使用,可以生成非常复杂的界面,可以方便地在handle中存取数据,将创建对象代码与动作执行代码很好地结合起来。

当然,最好的办法是针对不同的情况来确定使用GUIDE还是全脚本,也可以考虑结合使用来发挥各自优势。

看再多不如动手学得快,自己动手,不断摸索,在实践中体会学习的快乐!
zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
liwenhui        

70

主题

65

听众

5199

积分

独孤求败

  • TA的每日心情
    擦汗
    2018-4-26 23:29
  • 签到天数: 1502 天

    [LV.Master]伴坛终老

    自我介绍
    紫薇软剑,三十岁前所用,误伤义士不祥,乃弃之深谷。 重剑无锋,大巧不工。四十岁前恃之横行天下。 四十岁后,不滞于物,草木竹石均可为剑。自此精修,渐进至无剑胜有剑之境。

    社区QQ达人 邮箱绑定达人 发帖功臣 元老勋章 新人进步奖 风雨历程奖 最具活力勋章

    群组计量经济学之性

    群组LINGO

    回复

    使用道具 举报

    wenn        

    1

    主题

    4

    听众

    209

    积分

    升级  54.5%

    该用户从未签到

    回复

    使用道具 举报

    3

    主题

    4

    听众

    86

    积分

    升级  85.26%

    该用户从未签到

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2025-6-13 11:01 , Processed in 0.462017 second(s), 72 queries .

    回顶部