MATLAB图像用户界面(2)

MATLAB的uicontrol包括按钮、滑标、文本框及弹出式菜单。

语法格式:hc_1=uicontrol(Hf_fig,'PropertyName',PropertyValue,...)

共有8种不同类型或形式的控制框,属性'Style'决定了所建控制框的类型,'CallBack'属性值是当控制框激活时,传给eval在命令窗口空间执行的字符串。

下面就分别介绍 这8种不同类型的控制框,主要是它们的创建语句格式。

1)按钮

hc_close=uicontrol(gcf,'Style','push','Position',[10,10,100,25],...
    'String','Close','CallBack','close');

Position属性定义按钮键大小和位置,String定义了按钮标志(名称),按钮的Style属性是pushbutton。



 

扫描二维码关注公众号,回复: 850197 查看本文章

)无线按钮(选择/切换按钮)

由一个标志和标志文本的左端一个小圆圈或小菱形所形成。当选中时,圆圈被填充,且'Value'属性值设为1;没被选中为0。无线按钮具有互斥性,当一组选项value为1,其他就为0。

应用代码如下: 

  

hc_boxon=uicontrol(gcf,'Style','radio','Position',[5,26,100,15],...
    'String','Set Box on','Value',0,'CallBack',[...
    'set(hc_boxon,''Value'',1),',...
   'set(hc_boxoff,''Value'',0),',...
   'set(gca,''Box'',''on''),']);
hc_boxoff=uicontrol(gcf,'Style','radio','Position',[5,5,100,15],...
    'String','Set Box off','Value',1,'CallBack',[...
    'set(hc_boxon,''Value'',0),',...
   'set(hc_boxoff,''Value'',1),',...
   'set(gca,''Box'',''off''),']);

 

 

3)复选框

激活时,uicontrol在检查和清楚状态之间切换。Value属性值同上。

hc_box=uicontrol(gcf,'Style','check','Position',[5,26,100,15],...
    'String','Axis Box','CallBack',[...
    'if get(hc_box,''Value'')==1,',...
   'set(gca,''Box'',''on''),',...
   'else,',...
   'set(gca,''Box'',''off''),'...
   'end']);



 

4)静态文本框

用户不能动态地修改所显示的文本,文本只能通过改变'String'属性来更改。

hc_text=uicontrol(gcf,'Style','text','Position',[200,200,75,15],...
    'String',['Hello World']);

5)可编辑文本框

hc_multi=uicontrol(gcf,'Style','edit','Position',[200,150,55,100],...
    'String','Line1|Line2|Line3',...
    'Max',2);

通过把'Max'属性及'Min'属性设置成数值,可建立多行可编辑文本框。

 

 

 6)滚动条

三种方式设定:

法1:使鼠标指针指向指示器,移动指示器,拖动鼠标时,要按住鼠标按键,当指示器位于期望位置后松开鼠标。

法2:当指针处于槽中但在指示器一侧时,单击鼠标按键,指示器按该侧方向移动距离约等于整个值域范围的10%。

法3:在滚动条不论哪端单击鼠标指针,指示器沿着箭头方向移动大约滑标范围的1%。

例:设置视点方位角

clc
vw=get(gca,'View');   %获得当前axis的三维视角(方位角和仰视角)
hc_az=uicontrol(gcf,'Style','slider','Position',[2,2,140,20],...
    'Min',-90,'Max',90,'Value',vw(1),...
    'CallBack',[...
    'set(hc_cur,''String'',num2str(get(hc_az,''Value''))),'...
    'set(gca,''View'',[get(hc_az,''Value''),vw(2)])']);%仰角不变,方位角为滚动条所在的值
%创建三个静态文本框,分别显示最大最小及当前值
hc_min=uicontrol(gcf,'Style','text',...
    'Position',[2 25 20 15],...
    'String',num2str(get(hc_az,'Min')));
hc_max=uicontrol(gcf,'Style','text',...
    'Position',[128 25 20 15],...
    'String',num2str(get(hc_az,'Max')));
hc_cur=uicontrol(gcf,'Style','text',...
    'Position',[65 25 20 10],...
    'String',num2str(get(hc_az,'Value')));

滑标方向取决于宽与高之比。如果width大于height,就画水平方向的滑标,否则就画垂直方向的滑标。在X Window系统平台中,如果滑标一个方向大小比另一个方向小于4倍,就不显示,其他操作平台上滑标均有箭头。



 



 


7)弹出式菜单

当选择一个弹出项时,'Value'属性值会设置成选择向量所选元素的下标。选项的标志指定为一个字符串,用"|"分隔。

hc_az=uicontrol(gcf,'Style','popupmenu','Position',[200,200,80,20],...
    'String','Black|Red|Yellow',...
    'Value',1,...
    'UserData',[[0 0 0];...
    [1 0 0];...
    [1 1 0]],...
    'CallBack',[...
    'UD=get(hc_fcolor,''UserData'');',...
    'set(gcf,''Color'',UD(get(hc_fcolor,''Value''))']);



 

8)框架

仅是带色彩的矩形区域,提供了视觉的分隔性。要事先定义!否则可能覆盖其他控制框。

clc
hc_frame=uicontrol(gcf,'Style','frame','Position',[250 200 95 90]);
hc_pb1=uicontrol(gcf,'Style','push','Position',[255 205 40 40],'String','Ok');
hc_pb2=uicontrol(gcf,'Style','push','Position',[300 205 40 40],'String','NOT');
hc_text=uicontrol(gcf,'Style','text','Position',[255 256 85 20],'String','Push Me');

 

 

猜你喜欢

转载自459838660.iteye.com/blog/2202514
今日推荐