Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

uidropdown

创建下拉组件

说明

dd = uidropdown 在新图窗窗口中创建一个下拉框,并返回 DropDown 对象。MATLAB® 调用 uifigure 函数来创建该图窗。

示例

dd = uidropdown(parent) 在指定的父容器中创建下拉组件。父容器可以是使用 uifigure 函数创建的 Figure 或其子容器之一。

示例

dd = uidropdown(___,Name,Value) 使用一个或多个 Name,Value 对组参数指定对象属性。可以将此选项与前面语法中的任何输入参数组合一起使用。使用 Name,Value 对组 Editable,'on' 指定一个下拉组件,允许 App 用户键入文本或选择预定义选项。

示例

全部折叠

创建一个具有默认项目的下拉组件。

fig = uifigure;
dd = uidropdown(fig);

在下拉组件中的任意位置点击可以打开它。

创建一个下拉组件并指定选项。

fig = uifigure;
dd = uidropdown(fig,'Items',{'Red','Yellow','Blue','Green'},...
                     'Value','Blue');

确定与选定选项关联的值。

value = dd.Value
value =

    'Blue'

默认情况下,ItemsData 属性为空,因此下拉组件值对应于在下拉组件中选定的元素。

将数据值与每个下拉组件项目关联。

dd.ItemsData = [1 2 3 4];

确定与选定选项关联的值。

value = dd.Value
value =

3

请注意,当 ItemsData 属性值非空时,下拉组件的值是与选定的 Items 值元素对应的 ItemsData 值。

fig = uifigure;
dd = uidropdown(fig,'Editable','on');

在下拉组件中的任意位置(向下箭头除外)点击,将出现一个插入光标,允许用户在下拉组件中键入文本。

创建一个绘图和一个下拉组件。当 App 用户从下拉组件中选择某个选项时,绘图的颜色将改变。

请将以下代码保存到 MATLAB 路径中的 plotOptions.m 中。以下代码将创建一个窗口,其中包含一个绘图和一个下拉组件。当 App 用户更改下拉组件选择时,ValueChangedFcn 回调将改变绘图的颜色。

function plotOptions
fig = uifigure; 
fig.Position(3:4) = [440 320];

ax = uiaxes('Parent',fig,...
    'Position',[10 10 300 300]);

x = linspace(-2*pi,2*pi);
y = sin(x);
p = plot(ax,x,y);
p.Color = 'Blue';

dd = uidropdown(fig,...
    'Position',[320 160 100 22],...
    'Items',{'Red','Yellow','Blue','Green'},...
    'Value','Blue',...
    'ValueChangedFcn',@(dd,event) selection(dd,p));
end

% Create ValueChangedFcn callback:
function selection(dd,p)
val = dd.Value;
p.Color = val;
end

运行 plotOptions。从下拉组件中选择绿色,将把绘图颜色更改为绿色。

创建一个下拉组件和一个信号灯。当 App 用户从下拉组件中选择选项时,信号灯的大小将改变。

请将以下代码保存到 MATLAB 路径中的 lampSize.m 中。以下代码将创建一个图窗窗口,其中包含一个下拉组件和一个信号灯。当 App 用户更改下拉组件选项时,ValueChangedFcn 回调将改变信号灯的大小。

function lampSize
% Create figure and components

fig = uifigure('Position',[100 100 300 275]);

lmp = uilamp(fig,...
    'Position',[100 30 20 20]);

dd = uidropdown(fig,...
    'Editable','on',...
    'Position',[84 204 100 20],...
    'Items',{'Size x 1','Size x 2','Size x 3','Size x 4'},...
    'ItemsData',[1 2 3 4],...
    'Value',1,...
    'ValueChangedFcn',@(dd,event) optionSelected(dd,lmp));
end

% Create ValueChangedFcn callback
function optionSelected(dd,lmp)
val = dd.Value;
s = [20 20];
switch val
    case {1, 2, 3, 4}  % User selected a defined option
        size = val * s;
        lmp.Position(3:4) = size;
    otherwise % User typed a value
        m = str2num(val);
        size = m * s;
        lmp.Position(3:4) = size;
end
end

运行 lampSize,然后从下拉组件中选择各种选项。

在下拉组件中键入一个值,然后按 Enter 键。信号灯的大小将改变。(如果您键入的值较大,可能需要调整图窗大小才能看到信号灯。)

输入参数

全部折叠

父容器,指定为使用 uifigure 函数创建的 Figure 对象或其子容器之一:TabPanelButtonGroupGridLayout。如果不指定父容器,MATLAB 会调用 uifigure 函数创建新 Figure 对象充当父容器。

名称-值对组参数

指定可选的、以逗号分隔的 Name,Value 对组参数。Name 为参数名称,Value 为对应的值。Name 必须放在引号中。您可采用任意顺序指定多个名称-值对组参数,如 Name1,Value1,...,NameN,ValueN 所示。

示例: 'Items',{'Red','Yellow','Blue'} 指定下拉组件中显示的选项。

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

值,指定为 ItemsItemsData 数组的元素。默认情况下,ValueItems 中的第一个元素。

Value 指定为 Items 的元素,即可选择与该元素匹配的下拉项。如果 ItemsData 非空,则 Value 必须设置为 ItemsData 的元素,而下拉列表将选中列表中的关联项目。

下拉项,指定为字符向量元胞数组、字符串数组或一维分类数组。允许重复的元素。下拉组件显示的选项与 Items 数组中的元素数量一样多。如果将此属性指定为分类数组,MATLAB 将使用数组中的值,而不是完整的类别集。

示例: {'Red','Yellow','Blue'}

示例: {'1','2','3'}

Items 属性值的每个元素关联的数据,指定为 1×n 数值数组或 1×n 元胞数组。允许重复的元素。

例如,如果您将 Items 值设置为员工姓名,则可以将 ItemsData 值设置为对应的员工 ID 号。ItemsData 值对 App 用户不可见。

如果 ItemsData 值和 Items 值中的数组元素数量不匹配,将发生以下情况之一:

  • 如果 ItemsData 值为空,则 Items 值的所有元素都呈现给 App 用户。

  • 如果 ItemsData 值中的元素数大于 Items 值,则 Items 值的所有元素都呈现给 App 用户。MATLAB 将忽略多余的 ItemsData 元素。

  • 如果 ItemsData 值非空,但元素数少于 Items 值,只将在 ItemsData 值中具有对应元素的 Items 值的元素呈现给 App 用户。

示例: {'One','Two','Three'}

示例: [10 20 30 40]

下拉组件的可编辑状态,指定为 'off''on',或者指定为数值或逻辑值 1 (true) 或 0 (false)。值 'on' 等效于 true'off' 等效于 false。因此,您可以使用此属性的值作为逻辑值。该值存储为 matlab.lang.OnOffSwitchState 类型的 on/off 逻辑值。

如果 Enable 属性值为 'off',则 App 用户不能更改下拉组件文本,即使 Editable 属性值为 'on' 也是如此。

更改值后执行的回调,指定为下列值之一:

  • 函数句柄。

  • 第一个元素是函数句柄的元胞数组。元胞数组中的后续元素是传递到回调函数的参数。

  • 包含有效 MATLAB 表达式的字符向量(不推荐)。MATLAB 在基础工作区计算此表达式。

当用户从下拉列表中选择不同的选项时,将会执行此回调函数。如果以编程方式更改 Value 属性,将不会执行此回调函数。

此回调函数可以访问有关用户与下拉组件的交互的特定信息。MATLAB 将 ValueChangedData 对象中的此信息作为第二个参数传递给回调函数。在 App 设计工具中,该参数名为 event。您可以使用圆点表示法查询对象属性。例如,event.PreviousValue 返回下拉组件的上一个值。ValueChangedData 对象不可用于指定为字符向量的回调函数。

下表列出了 ValueChangedData 对象的属性。

属性
Value下拉组件在 App 用户最近一次与它交互之后的值。
PreviousValue下拉组件在 App 用户最近一次与它交互之前的值。
Edited

逻辑值,指明在下拉组件中键入一个新值时是否执行回调。

  • 0 (false) - App 用户选择或键入了下拉组件的 Items 属性的元素。

  • 1 (true) - App 用户键入的值不是下拉组件的 Items 属性的元素。

Source执行回调的组件。
EventName'ValueChanged'

有关编写回调的详细信息,请参阅在 App 设计工具中编写回调

下拉菜单打开回调函数,指定为下列值之一:

  • 函数句柄。

  • 第一个元素是函数句柄的元胞数组。元胞数组中的后续元素是传递到回调函数的参数。

  • 包含有效 MATLAB 表达式的字符向量(不推荐)。MATLAB 在基础工作区计算此表达式。

此属性指定当用户点击打开下拉菜单时要执行的回调函数。此回调的一个可能用途是更新菜单列表中条目的动态列表。

有关将回调指定为函数句柄、元胞数组或字符向量的详细信息,请参阅在 App 设计工具中编写回调

下拉组件相对于父级的位置和大小,指定为向量 [left bottom width height]。此表介绍该向量中的每个元素。

元素说明
left父容器的内部左边缘与下拉组件的外部左边缘之间的距离
bottom父容器的内部下边缘与下拉组件的外部下边缘之间的距离
width下拉组件的左右外部边缘之间的距离
height下拉组件的上下外部边缘之间的距离

所有测量值都以像素为单位。

Position 值相对于父容器的可绘制区域。可绘制区域是指容器边框内的区域,不包括装饰元素(如菜单栏或标题)所占的区域。

示例: [100 100 100 22]

另请参阅

函数

属性

在 R2016a 中推出