matlab按钮组的回调,MatlabGUI中回调函数的写法详解
1、从最简单的开始
编程最基本的⽬的就是——我执⾏⼀个操作,程序做出⼀个反应。“⼀个操作”包括:点击⿏标,拖动滑块,填写数据,选择选项……
“做出⼀个反应”包括:计算⼀些东西,然后储存在哪⾥,或者贴个图出来,或者显⽰在哪⾥……
--------------------------------------------------------------------------------------------------
编程的基本思想:
⽬的->当点击按钮A时,然后执⾏任务C, 则->进⼊按钮A的回调函数callback⾥,写下任务C的代码。
--------------------------------------------------------------------------------------------------
a:不知道callback在哪??右键单击按钮,view callbacks->选择callback)别的控件也⼀样。
a:不同的回调函数啥意思??
callBack
最常⽤的就是它。如果控件是按钮,那点击按钮时,则按钮下的Callback就会执⾏;如果是滑块,则拖动滑块时,滑块名下的callback就会执⾏;总之,就是对控件默认操作时,matlab后台就会⾃动调⽤它名下的的callback。正常⽤途,全放在callback下就够了。如果其他的,实在是想知道,了解⼀下也未尝不可。
value函数什么意思
ButtonDownFcn
就是⿏标在它(代指各种控件)上⾯点击⼀下,你放在这个函数名下的代码就会执⾏。(ps:按钮的callback也是点击,所以会覆盖掉这个buttondownfcn。)
CreateFcn
顾名思义,在⽣成这个控件,显⽰之前,执⾏你放在这个函数名下的代码;
DeleteFcn
⼀样。在控件要销毁,但是被毁灭之前执⾏这个函数名下的代码。貌似“真的要退出吗”这⼀类就是写在这⾥。
KeyPressFcn
当前控件获得焦点且有按键按下时执⾏。(什么是焦点?就是这个控件被⿏标点了(或者是tab轮选到了)。你打开⼀个记事本,然后再点这个⽹页,再随便按⼏个按键,记事本上有字不?没有对吧。因为它没获得焦点,所以你的按键它不会反应的。只有你最后再点它⼀下,再按⼏个按键,结果怎么样?有字了吧?)这⾥的KeyPressFcn也是⼀样的道理。
⼀般在这下⾯的代码还会判断下按键是什么,然后执⾏相应的代码。
ResizeFcn,SelectionChangeFcn 不常⽤。也懒得去看了。附⼏句,控件都有Resize的属性,好像默认是不可调整,如果要⽤到这个函数,去把它打开先。
SelectionChangeFcn
是在按钮 组件中,改变选择时,所执⾏的函数。
哪些控件⽀持哪些回调函数?很简单,你在它上⾯右键就可以看到了,点进去就可以编辑了。
可以在property inspect中在需要的回调函数下设置%automatic就可以⾃动添加相应的回调函数框架。
2、常⽤控件代码框架参考
---------------------------------------------------------------------
Toggle Button 的callback⼀般写法
toggle button是什么?设计⾯板上,左边那⼀栏图标,看到它名字了吧?没看到?File->preference->GUIDE->把那个show names那⼀栏勾选上。好了,可以看到了吧 。知道是什么了吧?
拖进来,双击它,看到它的属性设置表。上⾯各种各样的属性,以后有时间慢慢研究。
点下它时,它默认value ='Max'
不点下它时,它value='Min'
1.functon togglebutton1_callback(hObject,eventdata,handles)
2.%这⼀句,现在不⽤管。⾃动加的。
3.%%%以下是⼀般代码
4.button_state = get(hObject,'Value')
5.%控件甲的callback下⾯hObject就是控件甲,同理控件⼄callback下的
6.if button_state==get(hObject,'Max')
7. %则怎么怎么怎么
8.else if button_state==get(hObject,'Min')
9. %则怎么怎么怎么
--------
备注:button_state随便取的变量名,存放按钮的选择状态,别以为它是什么喔。
如果你的button甲是放在⼀个buttonGroup⾥⾯,则button甲callback下的代码就要挪到buttonGroup下⾯去。因为buttonGroup的回调函数会覆盖掉它成员的回调函数。
----------------------------------------
Radio Buttons
------
1.右键点选你的Radio按钮,进⼊编辑callback
2.function ………………略
3.if(get(hObject,'Value')==get(hObject,'Max'))
4. %被选中了,你想怎么样
5.else
6. %不被选中,你想怎么样
-----------------------------------------
Check Boxes
-----------------------------------------
1.if(get(hObject,'Value')==get(hObject,'Max'))
2. %被选中了,你想怎么样
3.else
4. %不被选中,你想怎么样

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