版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/charie411/article/details/72934157
书到用时方恨少
最近使用matlab做GUI,需要用到单选按钮,现总结查询到的方法。
法一:使能+禁用
一种方法是在各个单选按钮的CallBack函数处使能当前单选按钮,同时禁用其他按钮;然后判定按钮value,并返回给新的变量,后续应该是判定新变量,进行后续操作。
#使能当前按钮,禁用其余按钮
set(handles.radiobutton1,'value',1);
set(handles.radiobutton2,'value',0);
if get(handles.radiobutton1,'value')
set(handles.text4, 'String', 'lb/cu.in');
set(handles.text5, 'String', 'cu.in');
set(handles.text6, 'String', 'lb');
elseif get(handles.radiobutton2,'value')
set(handles.text4, 'String', 'kg/cu.m');
set(handles.text5, 'String', 'cu.m');
set(handles.text6, 'String', 'kg');
end
法二:unitgroup的selectionchangedFc
unitgroup是图中标题为Button Group的那个控件,在matlab的GUI模板【GUI with Uicontrols】中,可以看到对应的处理办法:unitgroup控件的unitgroupunitgroup_SelectionChangedFc函数中,首先判定unitgroup控件的值,然后根据判定进行相应操作。
if (hObject == handles.english)
set(handles.text4, 'String', 'lb/cu.in');
set(handles.text5, 'String', 'cu.in');
set(handles.text6, 'String', 'lb');
else
set(handles.text4, 'String', 'kg/cu.m');
set(handles.text5, 'String', 'cu.m');
set(handles.text6, 'String', 'kg');
end
对比
对比来看,unitgroup方法还是简练一些,以后可得多学习模板~