MATLAB—GUI新⼿⼊门教程各个控件的使⽤⽅法菜单栏的使⽤
GUI界⾯基本操作
如果不想看⽂章,可以看或者
阅读本⽂,可以节省⼀个半⼩时的看视频的时间哦~
1.GUI界⾯介绍
在MATLAB命令⾏中输⼊guide,回车,进⼊GUI的界⾯,
如图,左边两列为基本的控件单元,分别有:按钮、滑动条、单选按钮、复选框、可编辑⽂本、静态⽂本、弹出式菜单、列表框、切换按钮、表、坐标区、⾯板、按钮组、ActiveX控件。⽹格上⽅的⼯具中,常⽤的按钮有:对齐对象、菜单编辑器、运⾏图窗。
选择需要的控件,摆放在界⾯中即可。
双击每个控件,会弹出该控件的检查器,⾥⾯有很多属性
每⼀个控件都有唯⼀的Tag标注⽤于区别,在创建好控件之后,对应的Tag值就会存⼊handles句柄的结构体中。Tag的值会与回调函数的函数名相关联。
Handles句柄这个结构体中的属性都是全局变量,⽤于在不同的回调函数之间实现参数的传递。如handles.edit1代表的就是可编辑⽂本框1这个对象。
在函数中的局部变量可以通过新建handles结构体的属性,变成全局变量,记得⼀定要更新这个结构体。如handles.Threshold= Th; guidata(hObject,handles)。就可以实现在其他所有的函数中调⽤handles.Threshold这个属性的值。
⼀般情况下,及时删除了控件,也不要随意删掉.m⽂件中的看似没有⽤到的代码,这样很容易出错。
2.各个控件的使⽤⽅法
2.1.1 按钮
按钮pushbotton为最基本的控件,在GUI界⾯中点击按钮之后,就会⾃动进⼊该按钮的回调函数,然后执⾏该回调函数中的内容。图2.2所⽰,在.m⽂件中查看定位该回调函数的⽅法,右键—查看回调—
Callback。⿏标点击按钮,进⼊callback回调函数中。KeypressFcn与键盘输⼊有关,CreateFcn和DeleteFcn与这个按钮的创建与删除有关,⼀般不⽤。
图2.2 查看按钮的回调函数
2.1.2 滑动条
如图2.3,在滑动条的属性中设置最⼤最⼩值,就是滑动条两端的数值,其中较为重要的属性有Value,初始值就是滑块在初始的时候停放的位置,⼀般设为0。在滑块滑动的过程中,Value的值会随之变化,根据需要在相关的回调函数中通过代码
get(handles.slider2,‘Value’)获取value的值,得到的是数值num。
图2.3 滑动条属性设置
2.1.3 ⽂本框
⽂本框分为静态⽂本和可编辑⽂本。
静态⽂本框内的⽂字初始化时输⼊,之后不可改变;可编辑⽂本框内的⽂字可以在运⾏的时候从键盘输⼊,或者是在其他控件的回调函数中,向可编辑⽂本框的String属性写⼊需要显⽰的内容如set(handles.edit1,‘String’,num2str(round(th*255))),注意String为字符串类型的,向两种⽂本框中写⼊的都是字符串类型。双击控件进⼊检查器,如图2.4 可编辑⽂本的检查器图2.4,在其中可以修改属性,常⽤的有字体、字号、Tag、String。
图2.4 可编辑⽂本的检查器
2.1.4 单选框和复选框和切换按钮
单选框和复选框的使⽤⽅法类似,**在属性中设置max、min的数值。按下时或者是勾选时,value值等于max的数值,未选择时Value值为min的数值。**⼀般可以在单选框或复选框的回调函数中使⽤,val = get(handles.checkbox1,‘Value’);匹配if—else语句执⾏不同的操作,表⽰按下或未选中执⾏指定的不同操作。Value的初始值只能在max和min之间选择。切换按钮(togglebutton),其和pushbutton有所区别。该控件主要⽤来标识状态(0-1双状态),pushbutton主要⽤来触发事件。切换按钮点击⼀次Value值为0,再点击⼀次value值为1。
2.1.5 弹出式菜单和列表框
控件的使用两者的使⽤⽅法类似,其属性中String的⾏数与Value值对应,⽤户点击了第⼏⾏,Value值就为⼏。结合switch-case语句,实现点击不同的⾏就可以执⾏不同的功能。如图2.5所⽰。
在列表中,str = get(handles.listbox1,‘String’);获得列表框中的所有String,str=为⼀个cell,selectes_index =
get(handles.listbox3,‘Value’);获取选中的是第⼏⾏。10,‘String’,str{selectes_index});
通过索引得到点击的那⼀⾏的String字符串,然后向某个⽂本框内写⼊。
还可以定义列表框中每⼀⾏String所代表的具体的数值。⾸先要在listbox 的createFn中定义,即表⽰在刚刚创建的时候就调⽤的函数。定义结构体的⼀个新的属性,⽤cell保存,其中⽤于存放各⾏所对应的具体数值。
图2.5 列表框的属性栏
2.1.6 按钮组
放置⼀个按钮组后,在其中放置若⼲个单选按钮或者切换按钮。按钮组的特点是:同⼀时刻只有⼀个可以被选中。在按钮组bottongroup 的SelectionchangeFcn函数中。获取当前选中的按钮的Tag:current_obj= get(eventdata.NewValue,‘Tag’);返回的是字符串,然后结合switch-case语句,即可实现点击不同的按钮,实现不同的功能。
按钮组中不可以放多个按钮(pushbotton),否则⽆效!只能放置多个单选按钮和切换按钮!
因为单选按钮按下的value是max,取消的value是min;
切换按钮按⼀下的value是0,按两下的value是1,
但是按钮(pushibotton)按下之后,值不会变换,只会进⼊回调函数。
2.1.7 菜单编辑器
菜单栏中的内容是显⽰在界⾯的菜单栏中,通过新建不同的主菜单和下⼀级的菜单实现点击菜单栏后的⼀系列内容。
上下⽂菜单是指在界⾯中,⿏标点击右键所显⽰的内容,使⽤⽅法与菜单栏相同。如图2.6所⽰。
编辑器上⽅可以新建主菜单和⼦菜单、移动菜单的从属关系,右边菜单属性,⽂本就是界⾯上菜单显⽰的⽂字内容,标记就是类似于控件的Tag,右下⽅点击查看即可进⼊该菜单栏的回调函数,表⽰在界⾯的菜单栏中,点击这⼀栏的⽂字就会执⾏的操作。
图2.6 菜单栏编辑器常见代码

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。