主要内容

uicontrol

R2026b

创建用户界面控件

描述

注意

推荐使用 uibutton 等 UI 组件函数而不是 uicontrol,因为前者提供更多自定义 App 组件的功能。有关详细信息,请参阅App 构建组件。

c = uicontrol 在当前图窗中创建一个普通按钮(默认用户界面控件),并返回 UIControl 对象。如果图窗不存在,则 MATLAB® 调用 figure 函数以创建一个图窗。

c = uicontrol(Name=Value) 创建一个用户界面控件,其中包含使用一个或多个名称-值对组参量指定的属性值。例如,Style="checkbox" 会创建一个复选框。

示例

c = uicontrol(parent) 在指定的父容器中创建默认用户界面控件,而不是默认为在当前图窗中。

c = uicontrol(parent,Name=Value) 指定用户界面控件的父容器和一个或多个名称-值参量。

示例

uicontrol(c) 将焦点放在一个以前定义的用户界面控件上。

示例

示例

全部折叠

通过将 Style 名称-值参量指定为 "radiobutton" 来创建单选按钮。通过指定 String 名称-值参量的值为单选按钮添加标签。

c = uicontrol(Style="radiobutton",String="Option 1");

Radio button labeled "Option 1"

创建一个图窗,其中有一个面板。然后,通过调用 uicontrol 函数在面板中创建滑块,面板指定为父容器,Style 指定为 "slider"。接下来,将滑块 Value 属性设置为 0.5。

f = figure;
p = uipanel(f,Position=[0.1 0.1 0.35 0.65]);
c = uicontrol(p,Style="slider");
c.Value = 0.5;

Figure with a panel that contains a slider

创建弹出式菜单,点击它时会显示选项列表。使用回调函数确定用户选择的列表项,并在 MATLAB 命令行窗口中显示选择。

将此代码保存为 mytemps.m。以下代码创建一个图窗窗口,其中包含具有三个列表项的弹出式菜单。然后,它使用回调函数查询弹出式菜单的 Value 和 String 属性,并在命令行中显示所选项。

function mytemps
f = figure;
c = uicontrol(f,Style="popupmenu");
c.Position = [50 75 100 20];
c.String = ["Celsius" "Kelvin" "Fahrenheit"];
c.Callback = @selection;

    function selection(src,event)
        val = c.Value;
        str = c.String;
        str{val};
        disp(['Selection: ' str{val}]);
    end

end

运行程序以生成图窗及其内容。然后,选择其他菜单项以更改选择。例如,如果从弹出式菜单中选择“Kelvin”,则命令行将显示文本 Selection: Kelvin。

mytemps

Pop-up menu with the list items "Celsius", "Kelvin", and "Fahrenheit"

创建普通按钮,点击它时会绘制数据。

将此代码保存为 pushbuttonPlot.m。以下代码创建一个包含坐标区和普通按钮的图窗窗口。每次点击该按钮时,回调函数都会执行并绘制五个正态分布随机数的条形图。

function pushbuttonPlot
f = figure;
ax = axes(f);
ax.Units = "pixels";
ax.Position = [75 75 325 280]
c = uicontrol;
c.String = "Plot Data";
c.Callback = @plotButtonPushed;

    function plotButtonPushed(src,event)
        bar(randn(1,5));
    end

end

运行 pushbuttonPlot,然后点击普通按钮。MATLAB 将绘制数据。

Figure window with a plot and a push button labeled "Plot Data"

创建一个可编辑的文本字段,并通过将其函数句柄传递给 uicontrol 函数使其具有焦点。此操作会使光标在可编辑文本字段中变为活动状态并闪烁。

c = uicontrol(Style="edit");
uicontrol(c);

Figure window with an edit field

输入参数

全部折叠

父对象,指定为 Figure 对象或指定为图窗中的 Panel、ButtonGroup 或 Tab 对象。在创建用户界面控件时,使用此参量指定父容器。

用户界面控件对象,指定为 UIControl 对象。使用此参量指定要具有焦点的一个以前定义的用户界面控件。

示例: uicontrol(c)

名称-值参数

全部折叠

将可选参量对组指定为 Name1=Value1,...,NameN=ValueN,其中 Name 是参量名称,Value 是对应的值。名称-值参量必须出现在其他参量之后,但对各个参量对组的顺序没有要求。

示例: uicontrol(Style="checkbox") 将复选框指定为用户界面控件的样式。

注意

此处所列的属性只是一部分。有关完整列表,请参阅 UIControl 属性。

UIControl 对象的样式,指定为下表中的值之一。

样式属性值示例描述
'pushbutton'Push button释放鼠标按键前显示为按下状态的按钮。
'togglebutton'

Selected toggle button
Cleared toggle button

按钮,它在外观上类似于普通按钮,但在视觉上有状态指示:选中或清除。
'checkbox'

Selected check box
Cleared check box

可以单独选择或清除的选项。
'radiobutton'

Selected radio button
Cleared radio button

作为组的一部分的选项,选中它时会清除组中的其他选项。


要为一组单选按钮实现互斥行为,请将它们置于 uibuttongroup 中。

'edit'

Editable text field that says, "Enter search term."

可编辑的文本字段。


要启用多行文本,请设置 Max 和 Min 属性以满足 Max-Min > 1。

'text'

Static text field that says, "Select an item below:"

静态文本字段。通常使用静态文本行为其他用户界面控件添加标签,向用户提供信息,或指示与滑块相关联的值。


要使静态文本响应鼠标点击,请将 Enable 属性设置为 'Inactive',并使用 ButtonDownFcn 回调编写响应代码。

'slider'

Slider with the thumb at the leftmost location

用户沿水平或垂直滑动条移动的“滑块”按钮。按钮沿条形的位置表示指定范围内的值。

'listbox'

List box with three items

用户可从中选择一项或多项的项列表。与弹出式菜单不同,点击列表框时不会展开。


要启用多项选择,请设置 Max 和 Min 属性以满足 Max-Min > 1。要在可以从一个列表框中选择多项时延迟操作,您可以将完成普通按钮与该列表框相关联。然后,使用该按钮的回调来计算列表框 Value 属性。

'popupmenu'

Pop-up menu with three items

弹出式菜单(也称为下拉菜单),展开以显示选项列表。关闭时,弹出式菜单指示出当前选项。如果要提供许多互斥选项,请使用弹出式菜单。

'frame'不推荐使用 'frame' 选项。使用 uipanel 或 uibuttongroup,而不要使用框架。在包含框架的 UI 中,GUIDE 继续支持其中的框架,但是在 GUIDE 布局编辑器组件面板中则不显示框架组件。

要显示的文本,指定为字符向量、字符向量元胞数组、字符串数组、分类数组或以管道分隔的行向量。Style 属性指示您可以使用的数组格式。

样式属性支持的数组格式示例
'pushbutton'

字符向量


字符向量元胞数组


字符串数组


分类数组

'Option 1'


{'Option 1'}


"Option 1"


categorical({'Option 1'})

'togglebutton'
'checkbox'
'radiobutton'
'edit'
'text'
'listbox'

字符向量


字符向量元胞数组


字符串数组


分类数组


管道分隔的行向量

'One'


{'One','Two','Three'}


["One" "Two" "Three"]


categorical({'one','two','three'})


'One|Two|Three'

'popupmenu'

注意

如果为普通按钮、切换按钮、复选框或单选按钮指定元胞数组或分类数组,则 MATLAB 仅显示数组中的第一个元素。

位置和大小,指定为 [left bottom width height] 形式的四元素向量。默认测量单位为像素。下表介绍向量中的每个元素。

元素描述
left父容器的内部左边缘与用户界面控件的外部左边缘之间的距离。
bottom父容器的内部下边缘与用户界面控件的外部下边缘之间的距离。
width用户界面控件的左右外侧边缘之间的距离。
height用户界面控件的上下外侧边缘之间的距离。

Position 值相对于父容器的可绘制区域。可绘制区域是指容器边框内的区域,不包括标题所占的区域。如果父容器是一个图窗,可绘制区域还不包括菜单栏和工具栏。

当前值,指定为数字。用于查询或修改某些用户界面控件的状态。下表说明与特定 UIControl 样式相关的 Value 属性。

样式属性值属性的描述
'togglebutton'
  • 已选择:Max 属性的值。

  • 已清除:Min 属性的值。

'checkbox'
  • 已选择:Max 属性的值。

  • 已清除:Min 属性的值。

'radiobutton'
  • 已选择:Max 属性的值。

  • 已清除:Min 属性的值。

'slider'与滑动条上的滑块位置关联的值。
'listbox'与列表框中的选定项对应的数组索引。值 1(默认值)对应于列表中的第一个项。选择多个项时,Value 属性将行索引存储为一个向量。
'popupmenu'与弹出式菜单中的选定项对应的数组索引。值 1(默认值)对应于弹出式菜单中的第一项。

版本历史记录

在 R2006a 之前推出