GUI控件及uimenu菜单——按钮,滑块

2.控件及属性

GUI是由各种图形对象组成的用户界面,在这种用户界面下,用户的命令和对程序的控制是通过“选择”各种图形对象来实现的。基本图形对象分为控件对象和用户界面菜单对象,简称控件和菜单。

下图列出了MATLAB中常用的控件。

在这里插入图片描述
每一个控件都不可能是完全符合界面设计要求的,需要对其属性进行设置,以获得所需的界面显示效果。可以通过双击该控件,打开控件属性对话框。属性对话框具有良好的交互界面,以列表的形式给出该控件的每一项属性。

下图介绍了控件对象的公共属性。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在MATLAB中的对话框上有各种各样的控件用于实现有关控制,其中uicontrol函数用于建立控件对象,其调用格式为

对象句柄= uicontrol(图形窗口句柄,属性名1,属性值1,属性名2,属性值2,…)

2.1 按钮

按钮键,又称命令按钮或直角按钮,是小的长方形屏幕对象,常常在对象本身标有文本。将鼠标指针移动至对象,来选择按钮键uicontrol,单击鼠标按钮,执行由回调字符串所定义的动作。按钮键的Style属性值是pushbutton。

例 按钮控件

clc;clear;close all
hf = figure( 'Position', [200 200 600 400],...
            'Name', 'Uicontroll',...
            'NumberTitle', 'off');
ha= axes( 'Position',[0.4 0.1 0.5 0.7],...
            'Box', 'on');
hbSin= uicontrol(hf,...
            'Style', 'pushbutton',...
            'Position', [50, 140, 100,30],...
            'String', '绘制sin(x)',...
            'CallBack',...
            [ 'subplot(ha);',...
                'x=0:0.1:4*pi;',...
                'plot(x, sin(x));',...
                'axis([0 4*pi -1 1]);',...
                'xlabel("x");',...
                'ylabel("y= sin(x)");',...
                'if get(hbSin,"value")==1;'...        %add
                    'grid on; '...
                 'else;'...
                    'grid off;'...
                 'end;'...
                ]);
hbCos = uicontrol(hf,...
            'Style', 'pushbutton',...
            'Position',[50, 100, 100, 30],...
            'String', '绘制cos(x)',...
            'CallBack',...
            [ 'subplot(ha);',...
                'x=0:0.1:4*pi;'....
                'plot(x, cos(x));',...
                'axis([0 4*pi -1 1]);',...
                'xlabel("x");',...
                'ylabel("y= cos(x)");',...
                'if get(hbCos,"value")==1;',...           %add
                    'grid on;',...
                'else;',...
                    'grid off;',...
                'end;'...
                    ]);
hbClose = uicontrol(hf,...
        'Style', 'pushbutton',...
        'Position',[50, 60, 100,30],...
        'String','退出',...
        'CallBack', 'close(hf)');

在这里插入图片描述

2.2滑块

滑块或称滚动条,包括三个独立的部分,分别是:滚动槽或长方条区域,代表有效对象值范围:滚动槽内的指示器,代表滑标当前值:以及在槽的两端的箭头。滑块uicontrol的Style属性值是slider。

滑标典型地应用于从几个值域范围中选定一个。滑标值有三种方式设定:

  • 鼠标指针指向指示器,移动指示器。拖动鼠标时,要按住鼠标按钮,当指示器位于期望位置后松开鼠标;

  • 当指针处于槽中但在指示器的-.侧时,单击鼠标按钮,指示器按该侧方向移动距离约等于整个值域范围的10%;

  • 在滑标不论哪端单击鼠标箭头,指示器沿着箭头的方向移动大约为滑标范围的1%。滑标通常与所用文本uicontrol对象一起显示标志、当前滑标值及值域范围。

例 实现了一个滑块用于设置视点方位角,用三个文本框分别指示滑标的最大值、最小值和当前值。

程序命令如下:

fig = meshgrid(2:100);
mesh(fig)
vw= get(gca, 'View');
Hc_az = uicontrol(gcf, 'Style', 'slider',...
                'Position', [10 5 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)])'); 
            %'set(gca,"View",[get(Hc_az,"Value"),vw(2)])']);
Hc_min = uicontrol(gcf, 'Style', 'text',...
                'Position',[10 25 40 20],...
                'String',[num2str(get(Hc_az,'Min' )),num2str(get(Hc_az, 'Min'))]);
Hc_max = uicontrol(gcf, 'Style', 'text',...
                'Position', [110 25 40 20],...
                'String',num2str(get(Hc_az, 'Max')));
Hc_cur = uicontrol(gcf, 'Style', 'text', ...
                'Position', [60 25 40 20],...
                'String',num2str(get(Hc_az,'Value')));

注意在callback里面多个命令语句用;分开,我在做的时候,用的[ ],发现一直报错,发现没有;忽略了这个,然后耽误了时间。
在这里插入图片描述
在这里插入图片描述
可以看到效果,实现全方位图

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值