来源:https://ww2.mathworks.cn/help/matlab/ref/uicontrol.html?searchHighlight=uicontrol&s_tid=doc_srchtitle

本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

uicontrol

创建用户界面控件

全页折叠

此函数仅用于 GUIDE 或者使用 figure 函数创建的 App。App 设计工具是构建 App 的推荐环境。有关详细信息,请参阅将 GUIDE 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');

在面板内创建滑块

创建一个图窗,其中有一个面板。然后,通过调用 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;

选择弹出式菜单时的代码响应

创建弹出式菜单,点击它时会显示选项列表。使用回调函数确定用户选择的列表项,并在 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

选择其他菜单项以更改选择。例如,如果从弹出式菜单中选择“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 将绘制数据。

使可编辑的文本字段具有焦点

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

c = uicontrol('Style','edit');
uicontrol(c);

输入参数

全部折叠

parent - 父对象
当前图窗 (默认) | Figure 对象 | Panel 对象 | ButtonGroup 对象 | Tab 对象

父对象,指定为使用 figure 函数创建的 Figure 对象或其子容器之一:PanelButtonGroupTab 对象。在创建用户界面控件时,使用此参数指定父容器。

c - 用户界面控制对象
UIControl 对象

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

示例: uicontrol(c)

名称-值对组参数

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

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

注意

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

'Style' - UIControl 对象的样式
'pushbutton' (默认) | 'togglebutton' | 'checkbox' | 'radiobutton' | ...

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

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


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


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


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

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

'edit'

可编辑的文本字段。

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

'text'

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

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

'slider'

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

'listbox'

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

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

'popupmenu'

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

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

'String' - 要显示的文本
字符向量 | 字符向量元胞数组 | 字符串数组 | 分类数组 | ...

要显示的文本,指定为字符向量、字符向量元胞数组、字符串数组、分类数组或以管道分隔的行向量。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 仅显示数组中的第一个元素。

'Position' - 位置和大小
[20 20 60 20] (默认) | [left bottom width height]

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

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

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

'Value' - 当前值
数字

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

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

  • 已清除:Min 属性的值。

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

  • 已清除:Min 属性的值。

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

  • 已清除:Min 属性的值。

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

matlab中uicontrol创建用户界面控件的更多相关文章

  1. 如何在多线程中调用winform窗体控件

    由于 Windows 窗体控件本质上不是线程安全的.因此如果有两个或多个线程适度操作某一控件的状态(set value),则可能会迫使该控件进入一种不一致的状态.还可能出现其他与线程相关的 bug,包 ...

  2. winform 用户控件、 动态创建添加控件、timer控件、控件联动

    用户控件: 相当于自定义的一个panel 里面可以放各种其他控件,并可以在后台一下调用整个此自定义控件. 使用方法:在项目上右键.添加.用户控件,之后用户控件的编辑与普通容器控件类似.如果要在后台往窗 ...

  3. WinForm用户控件、动态创建添加控件、timer控件--2016年12月12日

    好文要顶 关注我 收藏该文 徐淳 关注 - 1 粉丝 - 3       0 0     用户控件: 通过布局将多个控件整合为一个控件,根据自己的需要进行修改,可对用户控件内的所有控件及控件属性进行修 ...

  4. 【Windows编程】系列第二篇:Windows SDK创建基本控件

    在Win32 SDK环境下,怎么来创建常用的那些基本控件呢?我们知道如果用MFC,简单的拖放即可完成大多数控件的创建,但是我们既然是用Windows SDK API编程,当然是从根上解决这个问题,实际 ...

  5. winform用户控件、动态创建添加控件、timer控件、控件联动

    用户控件: 相当于自定义的一个panel 里面可以放各种其他控件,并可以在后台一下调用整个此自定义控件. 使用方法:在项目上右键.添加.用户控件,之后用户控件的编辑与普通容器控件类似.如果要在后台往窗 ...

  6. create()创建的控件不能映射消息函数的解决

    有时,使用create()在运行时创建的控件不能将消息映射到父窗口内,此时需要使用消息转发的机制,主要原理:注册一个全局的消息,针对接收消息的控件编写继承类,在该继承类中响应消息,并将已注册的全局消息 ...

  7. WinForm/Silverlight多线程编程中如何更新UI控件的值

    单线程的winfom程序中,设置一个控件的值是很easy的事情,直接 this.TextBox1.value = "Hello World!";就搞定了,但是如果在一个新线程中这么 ...

  8. 怎样在VS2013/MFC中使用TeeChart绘图控件

    TeeChart作为一款强大好用的绘图控件,通过它可以绘制出各式各样的图表,包括2D的,还有3D的,绘制的图表美观实用,这里主要讲述如何在VS2013/MFC中使用TeeChart控件,顺便说一下在V ...

  9. Win32 SDK程序创建一些控件(简单调用InitCommonControlsEx,并指定ICC_LISTVIEW_CLASSES控件就可以了)

    在Win32 SDK中创建一些控件的时候需要注意一下(具体是哪些控件请参看MSDN文档中列出来的) /* MSDN:Carries information used to load common co ...

随机推荐

  1. ugui 自定义字体

    Unity/UI —— 使用字符图片自定义字体(Custom Font) ---[佳] https://blog.csdn.net/qq_28849871/article/details/777190 ...

  2. android MVVM(2)用数据绑定关联VM 与 V

    1.官方文档 https://developer.android.com/topic/libraries/data-binding/architecture 2.简介 数据绑定库 可与MVVM 架构组 ...

  3. Unity碰撞消息(OnCollisionXXXX)和触发消息(OnTriggerXXXX)的调用情境

    MonoBehaviour中的消息非常多,一共有62个! 除了必须关注的脚本生命周期的一系列函数外,还有其他两组比较常混淆的消息:碰撞和触发. 按3D和2D物体区分,又分为碰撞:Collision.C ...

  4. openssl1.0在mac下的编译安装(踩坑精华)

    之前做了一次brew版本升级,然后用pip3安装的一个python命令就无法执行了(涉及到openssl库),执行就会报一个错误. ImportError: dlopen(/usr/local/Cel ...

  5. 分布式ID生成方案汇总

    1.目标 1.1.全局唯一 不能出现重复的ID,全局唯一是最基本的要求. 1.2.趋势有序 业务上分页查询需求,排序需求,如果ID直接有序,则不必建立更多的索引,增加查询条件. 而且Mysql Inn ...

  6. istio部署

    Istio的部署介绍 目录 Istio的部署介绍 部署模型 集群模式 单集群 多集群 网络模型 单网络 多网络 控制面模型 身份和信任模型 网格中的信任 网格之间的信任 网格模型 单网格 多网格 租户 ...

  7. 在Win10上安装Apache2.44

    下载地址:https://www.apachelounge.com/download/VS16/binaries/httpd-2.4.41-win64-VS16.zip 如果以上地址失效请到 http ...

  8. 推荐掌握Linux shell中这7种运算命令

    #常见的算术运算符号 .+.-:加减 .*./.%:乘.除.取余 .**:幂运算 .++.--:增加记减少 .!.&&.||:取反,并且,或 .<,<=,>,=> ...

  9. 说说ERP软件的系统设计--开源软件诞生8

    赤龙ERP系统设计篇--第8篇 用日志记录"开源软件"的诞生 赤龙 ERP 开源地址: 点亮星标,感谢支持,与开发者交流 kzca2000 码云:https://gitee.com ...

  10. java事件触发

    工作遇到一个问题:用netty实现服务和设备的交互,服务发送了一组指令,需要再等待时间内获取结果,如果结果提前全部返回,就进一步处理,如果等待时间内没有全部返回,就视为失败处理. 这个场景我遇到的困难 ...