当前位置: 首页 > news >正文

MATLAB GUI界面设计 第三章——仪器组件

参考教程:MATLAB App Designer基础教程Matlab GUI界面设计(全集更新完毕-用户界面设计appdesigner(中文)Matlab Gui教程_哔哩哔哩_bilibili

一、案例——温度预警提示灯(信号灯用例)

1、前端制作

        新建一个工程,在画布中添加如下组件,其中输入温度的组件为数值编辑字段,显示提示信息的组件为文本编辑字段。

2、后端制作

(1)APP预期实现的功能为——用户输入一个温度后,APP根据该温度判断是否报警,提示灯显示相应的颜色,同时输出相应的提示信息。

温度区间

提示灯颜色

提示信息

<-40℃

蓝色

ECU温度过低

≥-40℃且<120℃

绿色

ECU温度正常

≥120℃

红色

ECU温度过高

(2)右键输入温度的数值编辑字段,为其添加回调函数,因为程序的动作需要依赖用户在此控件上的输入数值,当用户输入一个温度数值后执行了其它操作,就会调用一次回调函数。

(3)回调函数中填入如下代码,其中提示灯的颜色属性Color需用字符串赋值,字符串的内容为RBG颜色比例系数,最大值为1,各系数用逗号分隔(当然,颜色参数有其它的表示方法,可以通过设置对象属性进行变更)。

% ECU温度赋值给变量value
ecu_Temp = app.Temp.Value;% 判断ECU温度情况
if ecu_Temp < -40% 温度过低app.Lamp.Color = "0.00,0.00,1.00"; 	% 提示灯颜色改为蓝色app.Tip.Value = "ECU温度过低"; 		% 输出温度过低的提示信息
elseif ecu_Temp >= -40 && ecu_Temp < 120% 温度过低app.Lamp.Color = "0.00,1.00,0.00"; 	% 提示灯颜色改为绿色app.Tip.Value = "ECU温度正常"; 		% 输出温度过低的提示信息
elseif ecu_Temp >= 120% 温度过高app.Lamp.Color = "1.00,0.00,0.00"; 	% 提示灯颜色改为红色app.Tip.Value = "ECU温度过高"; 		% 输出温度过低的提示信息 
end

3、试运行

        保存文件后点击“运行”,测试APP是否满足需求。

二、案例——开关实验程序(三种开关用例)

1、前端制作

(1)新建一个工程,在画布中添加如下组件。

(2)三种开关都可以设置方向是竖向或是横向。

2、后端制作

(1)APP预期实现的功能为——打开一个开关,相应的指示灯颜色变为蓝色,关闭一个开关,相应的指示灯颜色变为绿色。

(2)开关对应开和关两种状态,相应地,开关对象中也会有一个成员属性Value记录这个状态,它的数据类型为字符串,开和关对应的字符串可由程序员自行定义,默认为“On”和“Off”。

(3)分别为3个开关添加回调函数,并添加以下代码。

①开关的回调函数:

% 获取开关状态
value_Switch = app.Switch.Value;% 指示灯动作
if strcmp(value_Switch, "On")		  			% 判断开关状态是否为“On”app.Lamp_Switch.Color = "0.00,0.00,1.00";   % 提示灯颜色改为蓝色
elseif strcmp(value_Switch, "Off")	  		    % 判断开关状态是否为“Off”app.Lamp_Switch.Color = "0.00,1.00,0.00";   % 提示灯颜色改为绿色
end

②翘板开关的回调函数:

% 获取翘板开关状态
value_Switch_see_saw = app.Switch_see_saw.Value;% 指示灯动作
if strcmp(value_Switch_see_saw, "On")		          % 判断翘板开关状态是否为“On”app.Lamp_Switch_see_saw.Color = "0.00,0.00,1.00"; % 提示灯颜色改为蓝色
elseif strcmp(value_Switch_see_saw, "Off")            % 判断翘板开关状态是否为“Off”app.Lamp_Switch_see_saw.Color = "0.00,1.00,0.00"; % 提示灯颜色改为绿色
end

③拨动开关的回调函数:

% 获取拨动开关状态
value_Switch_stir = app.Switch_stir.Value;% 指示灯动作
if strcmp(value_Switch_stir, "On")		           % 判断拨动开关状态是否为“On”app.Lamp_Switch_stir.Color = "0.00,0.00,1.00"; % 提示灯颜色改为蓝色
elseif strcmp(value_Switch_stir, "Off")	           % 判断拨动开关状态是否为“Off”app.Lamp_Switch_stir.Color = "0.00,1.00,0.00"; % 提示灯颜色改为绿色
end

3、试运行

        保存文件后点击“运行”,测试APP是否满足需求。

三、案例——旋钮调节温度程序(仪表和旋钮用例)

1、前端制作

(1)新建一个工程,在画布中添加如下组件。

(2)仪表属性设置:

①在标度属性中可配置仪表显示的值(初始值)、最小值和最大值,以及值的递增方向;在本案例中计划用仪表显示温度,则可以将温度划分为三个区间,常温区用绿色表示,过温区用黄色表示,高温区用红色表示。

②在刻度属性中可配置仪表显示的刻度(以及刻度标签,刻度标签对应一个刻度值),可以输入刻度间隔,Designer会自动根据最值和刻度间隔进行配置,当然也可以手动配置刻度间隔,一些精度要求比较高的区域可配置间隔更小的刻度,同时刻度标签也可自行更改。

(3)旋钮属性设置:

①在范围属性中可配置旋钮的值(初始位置)、最小值(逆时针终点对应的值)和最大值(顺时针终点对应的值)。

②在刻度属性中可配置旋钮读数的刻度(以及刻度标签,刻度标签对应一个刻度值),可以输入刻度间隔,Designer会自动根据最值和刻度间隔进行配置,当然也可以手动配置刻度间隔,一些精度要求比较高的区域可配置间隔更小的刻度,同时刻度标签也可自行更改。

2、后端制作

(1)本案例需要用户手动调节旋钮,所以需要为旋钮添加回调函数,但相比于按钮组件,旋钮组件有两种回调函数,因为调节旋钮并非一个瞬态的过程,只要用户的鼠标捏着旋钮不放,那么旋钮的值就能一直被用户改变,针对这种情况,有两种回调函数(其它有类似情形的组件也会有这两种回调函数):

①ChangedFcn函数:当用户调节完旋钮并释放鼠标后触发,用户调节旋钮的过程中不会触发。

②ChangingFcn:用户调节旋钮时持续触发。

(2)很显然,旋钮调节的温度需要实时更新,同时也要实时显示在仪表上,所以旋钮需增加ChangingFcn回调函数,并在其中写入以下代码。

% 获取旋钮实时值
changingValue = event.Value;% 旋钮值更新至温度变量中
Temp = changingValue;% 温度值更新至仪表上
app.Gauge.Value = Temp;

3、试运行

        保存文件后点击“运行”,测试APP是否满足需求。

4、拓展

(1)仪表组件各式各样,但它们的功能基本类似,只是形状不一致,这里不再过多赘述。

(2)旋钮组件除了一般旋钮以外还有分档旋钮,二者的主要区别如下:

①一般旋钮调节数值,分档旋钮调节档位,每个档位用字符串命名。

②一般旋钮的Value值是数字类型,分档旋钮的Value值是字符串类型。

③一般旋钮可添加ChangingFcn函数,分档旋钮不可添加ChangingFcn函数。

相关文章:

  • ISO 26262-11 半导体功能安全学习(二)
  • C#采集电脑硬件(CPU、GPU、硬盘、内存等)温度和使用状况
  • 技术解读|MatrixOne Intelligence模型解析原理及微调实践
  • 华为云 Flexus+DeepSeek 征文|文案魔盒・Emoji 菌:基于华为云 CCE 集群 Dify 大模型,创意文案智能生成助手
  • 企业网盘和个人网盘的区别?
  • 数组题解——​最大子数组和​【LeetCode】(更新版)
  • 基于ASP4644多通道降压技术在电力监测系统中集成应用与发展前景
  • github常用插件
  • 6.23_JAVA_RabbitMQ
  • 使用AI开发招聘网站(100天AI编程实验)
  • 设计模式精讲 Day 12:代理模式(Proxy Pattern)
  • CSS 中aspect - ratio属性的用途及应用
  • 酒店住宿自助入住系统——店铺自动运营—仙盟创梦IDE
  • NIPS-2002《Learning from Labeled and Unlabeled Data with Label Propagation》
  • Java面试核心考点复习指南
  • c++bind和forward完美转化
  • 实现 “WebView2 获取word选中内容
  • [NocoDB] 在局域网中调整Float类型显示精度的部署经验
  • 【笔记】在Cygwin上使用mintty连接wsl
  • DeepLegal AI:智能法律文档审查与合规助手+MVP
  • 手机网站建设找哪家/比较靠谱的推广平台
  • 设计师去哪个网站找工作/今日头条最新
  • 国外 网站 模板/搜狗seo查询
  • 虎门专业网站建设/关键词优化seo多少钱一年
  • 做二手电脑的网站/网站应该如何推广
  • 淘客返利怎么做网站/什么软件可以推广