Main Content

uicontrol

创建用户界面控件

说明

注意

App 设计工具或使用 uifigure 函数创建的 App 不支持 uicontrol 函数。有关这些上下文中可用组件的列表,请参阅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');

Figure window with a 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 window with a panel that contains a slider

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

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

function mytemps
f = figure;
c = uicontrol(f,'Style','popupmenu');
c.Position = [20 75 60 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

运行程序以生成图窗及其内容。

mytemps

Figure window with a pop-up menu. The pop-up menu has the list items "Celsius", "Kelvin", and "Fahrenheit".

选择其他菜单项以更改选择。例如,如果从弹出式菜单中选择“Kelvin”,则命令行将显示文本 Selection: Kelvin

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

将此代码保存为 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 函数创建的 Figure 对象或其子容器之一:PanelButtonGroupTab 对象。在创建用户界面控件时,使用此参数指定父容器。

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

示例: uicontrol(c)

名称-值参数

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

在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name 引起来。

示例: 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."

可编辑的文本字段。


要启用多行文本,请设置 MaxMin 属性以满足 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

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


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

'popupmenu'

Pop-up menu with three items

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

'frame'不推荐使用 'frame' 选项。使用 uipaneluibuttongroup,而不要使用框架。在包含框架的 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 之前推出