控件介绍一
在介绍完成界面后,大家对各个控件有了一个大概的认识,如何往深处学习,当然是结合实际例子来进行练习咯。
首先新建一个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很好,在这借花献佛
领取专属 10元无门槛券
私享最新 技术干货