matlabGUI学习笔记1

本文深入探讨MATLAB GUI设计的两种方式,重点讲解通过脚本编程设计GUI的方法。详细解析uicontrol函数及其属性,包括按钮、文本、滑动条等控件的创建与设置,以及如何控制控件的可见性和工作状态。

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

matlabGUI设计第一种方式是可以通过命令行输入guide,再上面拖动控件的方式构建GUI;第二种是直接使用脚本编程方式设计GUI。
最开始我也是使用guide拖动控件的方式设计GUI,直接按照书上或者一些教程的实例去按着步骤编写。在这样学习了两个星期之后发现对于整体参数,数据传递,对象的结构,句柄啊等等一无所知,仅仅是拖动控件,按照例子改写完成一些简单的操作,这不是我想要的结果,所以决定从matlabGUI命令开始,从读matlab帮助文档开始,重新认识GUI。

首先从函数及其属性开始一个一个看

函数列表

首先是最基础最重要的函数 uicontrol

uicontrol调用格式:

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

c = uicontrol(name,value) %创建一个用户界面控件,其中包含使用一个或多个 名称-值 对组参数指定的属性值。例如,‘style’,‘checkbox’会创建一个复选框。

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

c = uicontrol(parent,name,value) %指定用户界面控件的父容器和一个或多个 名称-值 队组参数。

uicontrol(uc) %将焦点放在指定的用户界面控件上。

语法并不繁琐,关键在于它属性

第一,如何调用指定控件

matlabGUI控件有 ‘pushbutton’,‘togglebutton’,‘checkbox’,‘radiobutton’,‘edit’,‘text’,‘slider’,‘listbox’,‘popupmenu’
按钮,切换按钮,复选框,单选按钮,可编辑文本,静态文本,滑动条,列表框,弹出式菜单

调用示例

c = uicontrol;%默认pushbutton
c = uicontrol('style','pushbutton');%调用单选按钮
c = uicontrol('style','checkbox');%调用复选框

第二,如何设置控件属性

每一个控件均有其内在属性,如名称,大小,位置等等,那么它们以什么符号出现在空间中呢?如何去设定他们的值呢?

1,Value(当前值)

切换按钮,复选框,单选按钮,滑动条,列表框,弹出式菜单拥有value这一属性

调用方式(dot调用)

c = uicontrol('style','radiobutton');
val = c.Value;%必须大写
disp(val);

结果

按钮没按时Value值
按下按钮Value值

从而可以利用查询Value值的方法知道或者改变其状态。

2,Max (默认1)/ Min(默认0)(可自行设置)

切换按钮,复选框,单选按钮,滑动条,列表框,可编辑文本拥有这两个属性;
其中列表框与可编辑文本的意义不在于单独的值,而是Max-Min这一值:

当 Max – Min > 1 时,编辑文本框接受多行输入。否则,编辑文本框接受单行输入。Max 和 Min 的绝对值不影响可能的行数。只要差异大于 1,则编辑框可以包含任意行数。

Max 属性值可帮助确定用户是否可同时选择列表框中的多个项目。如果 Max – Min > 1,则用户可以同时选择多个项目。否则,用户不能同时选择多个项目。如果设置 Max 和 Min 属性以允许多个选择,则 Value 属性值可以是索引向量。

调用方式与Value雷同;
这里讲一下设置值的方法

c = uicontrol('style','slider','Min',0,'Max',1);
c.Max
c.Min

设置方法1

c = uicontrol('style','slider');
c.Max
set(c,'Max',2);
c.Max

设置方法2

3,SliderStep - 滑块控件的步长(默认[0.01 0.10])

只有slider具有这项属性,指定为数组 [minorstep majorstep]。此属性控制当用户点击箭头按钮或滑块槽(滑块滑道)时滑块值变化的幅度,比较简单,不多赘述。

4,ListboxTop - 列表框中顶部项的索引(默认1)

列表框顶部的索引,指定为整数值,仅适用于列表框。此属性指定哪个项目显示在列表框中的最顶部位置,该列表框不够大,无法显示所有列表项。ListboxTop 值是您指定为 String 属性值的数组的索引。ListboxTop 值必须介于 1 和数组中的元素数之间。非整数值固定为下一最小整数。

5,接下来要讲的属性可以分为一个小类(test and styling)

5.1,String-要显示的文本

字符向量
字符向量元胞数组
字符串数组
管道分隔的行向量

‘Red’
{‘Red’,‘Blue’,‘Orange’}
[“Red” “Blue” “Orange”]
‘Red|Blue|Orange’

在创建控件时声明也好,用set函数也好,均可,这个很简单,在上述所有控件中除了slider没有这一属性外,均可设置string。

5.2,ForegroundColor - 文本颜色

[0 0 0] (默认) | RGB 三元组 | ‘r’ | ‘g’ | ‘b’ | …

5.3,BackgroundColor - 背景色

[.94 .94 .94] (默认) | RGB 三元组 | ‘r’ | ‘g’ | ‘b’ | …

5.4,CData - 可选图标

三维真彩色 RGB 值数组,其值:
介于 0.0 和 1.0 之间的双精度值
介于 0 和 255 之间的 uint8 值

普通按钮和切换按钮是唯一完全支持 CData 的 UIControl 对象。如果为单选按钮或复选框指定 CData 属性,则图像可能与文本重叠。另外,为单选按钮或复选框指定图像会禁用在选择或取消选择它们时显示的功能。

6,字体

6.1 FontName
6.2 FontSize
6.3 FontWeight
6.4 FontAngle
6.5 FontUnits

这一部分不是那么重要,设置方法如上

7,interactivity(交互性)(很重要的属性)

7.1 Visible—用户界面控件可见性

‘on’(默认)|‘off’
当Visible为’off’时,用户界面不可见,但可以查询其属性。
为使启动更加快速,将最初的控件设置为不可见

7.2 Enable - 用户界面控件的工作状态

用户界面控件的工作状态,指定为 ‘on’、‘off’ 或 ‘inactive’。Enable 属性控制用户界面控件是否响应用户交互。

‘on’ - 用户界面控件处于工作状态。
‘off’ - 用户界面控件未处于工作状态,并且呈灰显。
‘inactive’ - 用户界面控件未处于工作状态,但外观与 Enable 设置为 ‘on’ 时相同。

7.3 Tooltip - 工具提示/TooltipString-工具提示(不推荐)

指定为字符向量或字符串标量。如果使用此属性,则在运行时当用户将指针悬停在组件上时,将显示消息。禁用组件时,不显示工具提示。

要创建多行文本,请使用 sprintf 函数在文本中插入换行符 (’\n’)。

txt = sprintf('Line 1\nLine 2');
set(text,'TooltipString',txt);

然后将 Tooltip 属性设置为 sprintf 返回的值,即可显示。

/* 这里我用了tooltip试了一下发现不行,所以用了tooltipstring,但文档说2018b开始就用Tooltip。

7.4 UIContextMenu-上下文菜单

空 GraphicsPlaceholder 数组 (默认) | uicontextmenu 对象
上下文菜单,指定为 ContextMenu 对象。使用此属性可在用户右键点击 UI 组件时显示上下文菜单。使用 uicontextmenu 函数创建上下文菜单。

uicontextMenu之后再看
还有几个都是不推荐使用的,也就没必要再写了

8,位置

8.1 Position-位置和大小

位置和大小,指定为 [left bottom width height] 形式的四元素向量。
left:父容器的内部左边缘与用户界面控件的外部左边缘之间的距离
bottom:父容器的内部下边缘与用户界面控件的外部下边缘之间的距离
width:用户界面控件的左右外侧边缘之间的距离
height:用户界面控件的上下外侧边缘之间的距离

所有测量值都采用 Units 属性指定的单位。
Position 值相对于父容器的可绘制区域。可绘制区域是指容器边框内的区域,不包括标题所占的区域。如果父容器是一个图窗,可绘制区域还不包括菜单栏和工具栏。

设置方法

b = uicontrol;
b.Position(3) = 52;
b.Position

8.2 InnerPosition - 位置和大小

同上

8.3 OuterPosition - 位置和大小

同上

8.4 Extent - 外围矩形的大小

外围矩形的大小,以四元素行向量形式返回。向量的前两个元素始终为零。第三和第四个元素分别是矩形的宽度和高度。
MATLAB 基于 String 属性值的大小和字体特征确定矩形的大小。要调整宽度和高度以适应 String 值的大小,请将 Position 宽度和高度值设置为略大于 Extent 的宽度和高度值。

8.5 Units - 测量单位

‘pixels’ (默认) | ‘normalized’ | ‘inches’ | ‘centimeters’ | ‘points’ | ‘characters’
单位

8.6 HorizontalAlignment - uicontrol 文本的对齐方式

‘center’ (默认) | ‘left’ | ‘right’
HorizontalAlignment 属性仅影响 uicontrol 的 ‘text’ 和 ‘edit’ 样式。

然后就是uicontrol中重中之重的回调了,这一部分再下一篇再写。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值