【matlab】default uicontrol units解读

本文详细介绍了MATLAB中UI控件(uicontrol)的概念及其使用方法,包括按钮、滑块、文本框等常见控件的创建与配置,以及如何通过设置属性实现交互功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Uicontrol:是user interface control 的缩写(用户界面控制)。在各计算机平台上,窗口系统都采用控制框和菜单,让用户进行某些操作,或设置选项或属性。控制框是图形对象,如图标、文本框和滚动条,它和菜单一起使用以建立用户图形界面,称之为窗口系统和计算机窗口管理器。MATLAB控制框,又称uicontrol,与窗口管理器所用的函数十分相似。它们是图形对象,可以放置在MATLAB的图形窗中的任何位置并用鼠标激活。MATLAB的 uicontrol包括按钮、滑标、文本框及弹出式菜单。Uicontrol由函数uicontrol生成。
     >>Hc_1=uicontrol(Hf_fig, ' PropertyName ' ,PropertyValue,...)
其中,Hc_1是由函数uicontrol生成uicontrol对象的句柄。通过设定uicontrol对象的属性值' PropertyName' ,  ' PropertyValue ' 定义了uicontrol的属性;Hf_fig是父对象的句柄,它必须是图形。如果图形对象句柄省略,就用当前的图形建立不同类型的控制框。MATLAB共有八种不同类型或型式的控制框。它们均用函数uicontrol建立。属性 ' Style ' 决定了所建控制框的类型。 ' Callback ' 属性值是当控制框激活时,传给eval在命令窗口空间执行的MATLAB字符串。
下面将给出uicontrol 对象的一些属性及它们相应的值和描述,{}内的内容为默认值,如{default},除非另外声明,否则所有的属性都可以进行设置,所有对象都通用的属性将在附件中列出。
1.‘BakcgroundColor'(背景颜色)---ColorSpec(特定的颜色).这个属性声明了用来填充uicontrol对象的背景颜色,ColorSpec是一个三元素的RGB 向量或者标准颜色的字符串号,默认的颜色值是和系统相关的,并且可以通过输入命令get(0,'DefaultUuicontrolBackgroundColor')获得。
2.‘Callback'(返回,回调)----string(字符串)。这个属性声明了当用户触发uicontrol对象(如:在按下一个'pushbutton'或者拖动一个'slider')时候所执行的字符串,'frame' 和静态的'text'uicontrol类型不发出回调。
3.‘CData'--m-by-n-by-3 array( 矩阵)这个属性是一个在'pushbutton'或'fogglebutton'uicontrol类型上显示的真彩色图像。
4 ‘Enable'---{‘on'}(默认状态)|‘inactive'(静态)|'off'(关)这个属性声明了是否启用这个uicontrol对象,当设置为'on'的时候,在这个uicontrol被选中的时候,执行这个回调字符串,当设置为'off'的时候,这个uicontrol标签字符串就变暗。当设置为'inactive' 的时候,uicontrol没有被变暗,当设置为'off'和'inactive'的时候,不执行这个回调字符串,但是'ButtonDownFcn'属性还是会起作用。
5 ‘Extent' (宽度,长度)---[0 0 width heigth],这个属性是一个只读属性,它返回用来标识这个uicontrol所使用的文本字符串的大小,其格式为标准的直角坐标格式,单位为'Units'属性所声明的单位,这个属性可用于确定装载所期望标签字符串而需要的uicontrol的大小。
6 ‘FontAngle'(字体倾斜度)---{‘normal'}|'italic'(斜体的)|'oblique'(斜的,歪的)这个属性声明了所用的字符的倾斜度。
7‘FontName'( 字体)---string这个属性声明了所使用的字体类型,使用'FixedWidth'就将字体设置为保存在根对象的'FixedWidthFontName'属性中的字体。
8‘FontSize'(字体大小)---number(数字),声明了字体的大小,单位为'FontUnits'属性所声明的单位。
 
   ‘FontUnits—{‘points'(点)}|'normalized'|'inches'(英寸)|'centimeters'(厘米)|'pixels'(图素)这个属性声明了字体相对于这个高度的大小使用的单位,设定为'normalize'是指uicontrol 的高度为1.
9 ‘FontWeight(字体粗细)'---'light'|{‘normal'}|'demi'(半)|'boid'
10 ‘ForegroudnColor'( 前景色)---ColorSpec(色值)声明了uicontrol的标签文本的颜色,ColorSpec是一个三元素的RGB向量,或者是一个标准颜色的字符串名,默认值为黑色。
11          ‘HorizontalAlignment'(水平方向上的对齐方式)—{‘left'}(左)|'center'(中)|'right'(右)这个属性声明了uicontrol在水平方向上的对齐方式,在windows pc机上,这个属性只影响到'edit'和'text'类型的uicontrol.
12          ‘ListboxTop'---scalar, 对'listbox'类型的uicontrol,这个属性声明了显示在列表最顶端的字符串的索引。
13          ‘Max'(最大)---scalar(比列),对于'radiobutton' 和'checkbox'类型的uicontrol,'Max'是uicontrol为'on'时'Value' 属性的值,对于'slider' 类型的uicontrol,‘Max'是用户能够选择的最大值,并且它必须比'Min'属性所声明的值要大,默认值为1,对于'edit' 类型的uicontrol,如果'Max'-‘Min'>1,那么就可以进行多项选择,如果'Max'-‘Min'<=1,那么就只可以进行单项选择。
14          ‘Min'---scalar类似13
15           ‘Position'(位置)---[left(左) bottom(底) width(宽) heigh(高)]它声明了uicontrol的位置,格式为相对于图形窗口左下角的标准直角坐标格式,单位为'Units'属性所定义的单位,windows pc中‘popupmenu'类型的uicontrol 的高度是由字体来设置的,并且将heigth 忽略。
16           ‘SliderStep'(滚动条步长)—[arrow_step trough_step]这个属性声明了一个值,这个值是经过标定的'Max'-'Min' ,大小在0到1间,arrow-step是点滚动条上的箭头时滚动条移动的步长, trough_step是点滚动条的滑槽时滚动条移动的步长。
17          ‘String'—string这个属性声明了显示在按钮,拨动按钮,静态文本,弹出菜单上的uicontrol标签字符串,弹出菜单中的多个菜单项或者列表中的多个列表项可以声明为字符串单元数组,字符串矩阵或者由竖线字符分开的字符串,多行可编辑文本或者静态文本控件中的行分隔符号出现在字符串矩阵的各行之间或者字符串单元数组的每一个单元之间,竖线字符未被解释成线分隔符,在'edit'类型的uicontrol中,经过修改的文本可以通过这个属性返回。
‘Style'(类型)—‘pushbutton'(按钮键)|'togglebutton'(触发器)|'radiobutton'(无线按钮)|'chechbox'(检查框)|'edit'(编辑)|'text'(文本)|'slider'(滑标)|'frame'(框)|'listbox'(列表)|'popupmenu'(跃上型)这个属性声明了要生成的uicontrol对象类型。
。。。按钮键典型地用于执行一个动作而不是改变状态或设定属性。下面的例子(mmctl1.m)建立标志为Close的按钮键uicontrol。当激活该按钮时,close关闭当前的图形。以象素为单位的' Position ' 属性定义按钮键的大小和位置,这是缺省的 ' Units ' 属性值。属性 ' String ' 定义了按钮的标志。

units属性值指定了matlab用来度量尺寸和位置的单位。以figure的units属性值来说:
nomalized:figure的左下角的坐标为【0 0】,右上角的坐标为【1 1】,figure变大变小,坐标尺寸也会按比例变大变小,但坐标范围恒归一化为1。
inches, centimeters, 和 points 是绝对单位,一个点等于1/72英寸;
pixels像素取决于屏幕的分辨率;
characters单位取决于系统缺省的字体值,一个characters的宽度相当于x字符的宽度;高度是两行文字的基准线的高度。

例1>>Hc_close=uicontrol(gcf, ' Style ' , ' push ' ,' Position ' ,[10 10 100 25],' String ' ,'Close ' ,' CallBack ' , ' close');
。。。无线按钮,又称选择按钮或切换按钮,它由一个标志并和标志文本的左端一个小圆圈或小菱形所形成。当选择时,圆圈或菱形被填充,且 ' Value ' 属性值设为1;若未被选择,指示符被清除, ' Value ' 属性值设为0。无线按钮键 ' style ' 的属性值是 ' radiobutton ' 线按钮典型地用在一组互斥的选项中选择一项。为了确保互斥性,各无线按钮uicontrol的回调字符串必须不选组中其它项,将它们各项的 ' Value ' 设为0。然而,这只是一个约定,如果需要,无线按钮可与检查框交换使用。
 
...检查框,检查框典型地用于表明选项的状态或属性。通常检查框是独立的对象,如果需要,检查框可与无线按钮交换使用。
例2建立了一个检查框uicontrol,设置坐标轴 ' Box ' 属性,当此检查框被激活时,测试 ' Value ' 属性以确定检查框是否以往被检查或清除过,并适当设置 ' Box ' 属性。

>>hbox=uicontrol(gcf,'style','check','position',[100 50 100 20],'string','Axisbox','callback',['ifget(hbox,"value")==1,set(gca,"box","on"),else,(gca,"box","off",end')];
。。。。滑标, 滑标,或称滚动条,包括三个独立的部分,分别是滚动槽、或长方条区域,代表有效对象值范围;滚动槽内的指示器,代表滑标当前值;以及在槽的两端的箭头。滑标uicontrol的 ' Style '  属性值是 ' slider ' 。滑标典型地用于从几个值域范围中选定一个。滑标值有三种方式设定。方法一:鼠标指针指向指示器,移动指示器。拖动鼠标时,要按住鼠标按钮,当指示器位于期望位置后松开鼠标。方法二:当指针处于槽中但在指示器的一侧时,单击鼠标按钮,指示器按该侧方向移动距离约等于整个值域范围的10%  ;方法三:在滑标不论哪端单击鼠标箭头;指示器沿着箭头的方向移动大约为滑标范围的1%  。滑标通常与所用文本uicontrol对象一起显示标志、当前滑标值及值域范围。
例3实现了一个滑标,可以用于设置视点方位角。用了三个文本框分别指示滑标的最大值,最小值和当前值。3.m:
fig=meshgrid(1:50);
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)])']);
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')));
Axis off
18          TolltipSrting ----sting这个属性指当用户将鼠标指针移动在uicontrol之上并且在它上边停留的时候所显示的功能提示。
19      ‘Units'----{‘pixels'}|'normalized'|'inches'|'centimeters'|'points'这个属性声明了uicontrol对象属性所使用的度量单位。(见8)

11          ‘Value'(值)----scalar or vector这个属性包含了uicontrol的当前值:
1:‘Radiobutton'和'Checkbox'--- 当设为'on'的时候,为'Max',当设为'off'的时候,为 ‘Min'.
2:'Slider'--- 代表了滚动条位置的数字。
3:‘PopUpMenu'—选定项目的索引。
4:'ListBox'—选定列表项的索引的向量。
5:‘Togglebutton'---当按钮被按下的时候,为'Max';当按钮弹上来的时候,为'Min'
其它的uicontrol的类型不用设置这个属性。
例4:
stop=uicontrol('style','toggle','string','stop','background','white';%在窗口上画了一个按钮控件,标题为Stop,背景设为白色。
例5:下面的例子建立了一个框架,把两个按钮和一个标志放入其中。
>>  Hc_frame  =  uicontrol(gcf,' Style ', ' frame ' , ' Position ' ,[250 200 95 65]);
>>  Hc_pb1  =  uicontrol(gcf, ' Style ' , ' pudhbutton ' ,' Position ' ,[255 205 40 40], ' String ' , ' OK ' );
>>  Hc_pb2  =  uicontrol(gcf, ' Style ' , ' pushbutton ' ,' Position ' ,[300 205 40 40], ' String ' , ' NOT ' );
>>  Hc_1b1  =  uicontrol(gcf, ' Style ' , ' text ' ,' Position ' ,[255 250 85 10], ' Str ' , ' Push Me ' );
例6:建立Close 按钮键、无线按钮;对24小时建立检查框。
Hc_close=uicontrol( ' Style ' , ' push ' ,' Position ' ,[.65  .05  .30  .30], ' BackgroundColor ' ,[.8  .8  .9],' String ' , ' Close ' ,' CallBack ' ,' close(gcf) ' );
Hc_sec=uicontrol( ' Style ' , ' radiobutton ' ,' Position ' ,[.05  .05  .50  .13], ' Value ' ,sec,  ' String ' , ' Seconds ' );           
Hc_mil=uicontrol( ' Style ' , ' checkbox ' ,' Position ' ,[.05  .22  .50  .13],' Value ' ,mil,' String ' , ' 24-Hour ' );
### 回答1: MATLAB中的uicontrol callback是指在用户与GUI界面中的控件交互时,所调用的MATLAB函数。这个函数可以被用来处理用户输入的数据,或者执行一些特定的操作,例如更新界面上的图形或者计算一些数值。在MATLAB中,可以使用回调函数来实现GUI界面的交互性和动态性。要编写一个uicontrol callback,需要使用MATLAB的回调函数语法,并将其与GUI界面中的控件相关联。 ### 回答2: 在MATLAB中,uicontrol是用户界面控件对象的一种类型。在GUI应用程序中,可以使用uicontrol对象来创建按钮、文本框、菜单等各种控件。这些控件应该被赋予一个callback函数,当它们被激活时会调用该函数。 编写uicontrol对象的callback函数时,需要注意以下几点: 1. callback函数应该被定义为MATLAB函数,在函数中编写所需的计算代码。 2. callback函数通常使用MATLAB的句柄机制来获取当前GUI的状态和属性。 3. callback函数应该被绑定到GUI对象,以便在控件被触发时能够自动调用。 4. 在callback函数中,可以使用set函数来修改GUI对象的属性,以实现所需的计算结果。 例如,以下是一个简单的MATLAB回调函数,用于处理一个pushbutton控件的点击事件: ``` function pushbutton_Callback(hObject, eventdata, handles) % hObject: pushbutton object handle % eventdata: reserved - to be defined in a future version of MATLAB % handles: structure with handles and user data (see GUIDATA) % Get the value of a slider control sliderValue = get(handles.slider1, 'Value'); % Update a text object with the slider value set(handles.text1, 'String', num2str(sliderValue)); ``` 在上面的示例中,pushbutton_Callback函数被绑定到一个名为pushbutton的控件,每当该控件被点击时,函数将获取名为slider1的滑块控件的值,并在名为text1的文本控件中更新相应的文本字符串。 总之,MATLABuicontrol对象提供了一种方便的方式来创建GUI应用程序,并向用户提供交互式的操作。使用回调函数可以轻松地处理用户操作的事件,并执行所需的计算和更新。 ### 回答3: 在MATLAB中,uicontrol callback指的是用户界面控件的回调函数。当用户在界面上与控件进行交互时,MATLAB将自动调用该回调函数。因此,编写好的回调函数可以控制界面与用户之间的交互,并对界面上的数据进行处理及计算。 通常,我们需要编写一组函数和其他处理步骤以处理uicontrol callback事件。这些事件可以是单击按钮、拖动滑块或输入文本等。在控件的回调函数中,我们可以使用MATLAB提供的各种库函数来处理数据和执行计算。 编写uicontrol callback时需要考虑的几个问题: 1. 如何获取控件的“句柄”? MATLAB控制界面上的控件主要是通过“句柄”来完成的。要获取控件的句柄,可以使用MATLAB中的“findobj”命令。例如,我们可以使用findobj查找控件名称为“mybutton”的按钮组件,然后使用get函数获取该控件的句柄。 2. 如何访问控件的属性? MATLAB中的控件使用属性来进行展示和交互。访问控件属性的主要方法是使用get和set函数。例如,我们可以使用get函数获取"mybutton"按钮的"Value"属性,或使用set函数将该属性设置为新的值。 3. 如何编写回调函数? 一般而言,所有的MATLAB回调函数都必须满足特定的语法和返回值规范。在编写回调函数时,我们需要考虑以下几点:(1)确定所需的输入参数;(2)确定所需的输出参数(如果有);(3)确保函数的输出与控件属性的期望值相符合;(4)确保函数能够正确处理异常情况。 总体而言,MATLABuicontrol callback提供了一种简单而强大的方式,可以处理数据和执行计算。通过总结以上几点,我们可以遵循一定的规则来编写回调函数并维护和更新MATLAB应用程序的交互界面。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值