概述
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里面多个命令语句用;分开,我在做的时候,用的[ ],发现一直报错,发现没有;忽略了这个,然后耽误了时间。
可以看到效果,实现全方位图
最后
以上就是要减肥花生为你收集整理的GUI控件及uimenu菜单——按钮,滑块2.控件及属性的全部内容,希望文章能够帮你解决GUI控件及uimenu菜单——按钮,滑块2.控件及属性所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复