首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Matlab操作之GUI(二)

控件介绍一

在介绍完成界面后,大家对各个控件有了一个大概的认识,如何往深处学习,当然是结合实际例子来进行练习咯。

首先新建一个GUI界面,保存,命名为GUI01,可以发现会生成一个fig文件和m文件,其中这两个文件的名字都会是GUI01,当Matlab定位在包含这两个文件的文件夹路径下时,拖动其中的任何一个文件到Command Window中都会运行完成的界面图形,如果需要更改完善,右键fig文件,打开方式为GUIDE,就可在原来的基础上进行修改

上回讲了一下界面的基本组成,那么这次就要介绍一下相应的m文件中包含的一些常用内容,在不添加任何控件的情况下,会有三个以GUI01为头的函数,分别对应GUI窗口界面,GUI打开时预处理函数,GUI界面的输出,一般这三个默认函数不要自行改动,最多就是在OpeningFcn函数中进行数据的预置。

学过C语言的知道,通过类比,matlab中函数会包含形参(handles,eventdata等等)、使用函数包含数据的传输(setappdata,getappdata这些函数会在后讲到),在这三个函数中,当然也包含了形参,如下所示

GUI界面的好处是,在生成任何一个回调函数时,都会生成一个注释及该回调函数可能用到的形参,非常方便,而GUI界面开发主要用到的函数有set,get,setappdata,getappdata,传送参数有handles,eventdata后续使用中会发现其用的非常非常多

那么,作为控件的介绍,用实例说话才算,现在来进行Push Button、Edit Text、Static Text控件的介绍

加法计算器的设计

1.首先,往开发界面中拖入一个StaticText,双击该控件,调出其属性菜单,修改其FontSize属性值为14、ForegroundColor属性值选为红色、String属性值设置为请输入相加的两个数:

在界面上,我们的提示也就出现了

2.再拖入两个Edit Text(右击控件拖动为复制控件),三个Static Text,一个PushButton按钮,调整一下画幅大小(GUI主界面的右下角黑点)如图所示

3.设置(按照从左到右,从上往往下的顺序设置)

设置第一个Edit Text的Tag属性值为sum1,String属性值清空(回车为确认修改)

设置第一个Static Text的String属性值为+,FontSize的属性值为14

设置第二个Edit Text的Tag属性值为sum2,String属性值清空

设置第二个Static Text的String属性值为=,FontSize的属性值为14

设置第三个Static Text的String属性值为空,Tag的属性值为sum_value

利用对齐工具对上述组件进行垂直对齐,选中这五个组件,选择垂直居中并应用

4.设置按钮的属性设置其FontSize的属性值为14,String的属性值为计算,Tag的属性值为Add

到此,界面设计完毕

5.回调函数的编写,右击按钮--->viewCallbacks--->Callback

会将编辑器打开,而且,其函数的开头是以按钮的Tag(Add)开头,其参数有hObject,eventdata,handles,在这个案例中,我们使用handles就可以

在函数下面写入以下代码:

sum_value1=str2num(get(handles.sum1,'String'));

sum_value2=str2num(get(handles.sum2,'String'));

sum=sum_value1+sum_value2;

set(handles.sum_value,'String',num2str(sum));

代码讲解:

用get函数分别获得输入框中的文本内容,其中,对象由handles.Tag来唯一对应,sum1就是第一个编辑框的Tag,String为其输入框的一个属性,正好对应文本,但是,数学的运算只能是数字计算,所以出现str2num这个函数,不用的话计算结果会出错,是将字符串变成数字。对两个数值进行相加后,同理,num2str将数字转变成字符串,利用set函数送到第三个Static Text中,其Tag为sum_value。

运行(F5或点脚本运行按钮)以后在第一个框中输入数字,第二个框中输入数字,点击计算,会出现以下结果:其界面的名字与fig及m文件的名字一致

到此,脚本的组成,回调函数的添加,按钮控件Push Button与文本控件Edit Text及Static Text的应用就介绍完成

实例GUI01链接:

https://pan.baidu.com/s/11kfyXiRV8oqGq3nwKKUgSg

提取密码:gh0g

在朋友圈中有人留言制作Stateflow的教程,这个确实挺难,只能提供当时我用来学习的书本给大家,在这里要感谢一下我的沈姓博士师兄,提供这本书的资料,这本书是张威编著的,用以学习Stateflow很好,在这借花献佛

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180502G1IGQU00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券