MATLAB编程与工程应用—— 第10章 MATLAB图形用户界面设计
利用Matlab的图形用户界面(GUI)功能,设计并实现实验主界面
(1)利用Matlab的图形用户界面(GUI)功能,设计并实现实验主界面;(2) 实现在“符号计算”图形用户界面中的各项符号计算功能,如实现Matlab的求极限、求导、求不定积分与定积分、级数求和、方程组的符号求解、常微分方程的符号求解等符号计算;(3) 利用Matlab的二维、三维绘图功能,实现图形用户界面(GUI)中的部分符号计算的可视化,即给出符号计算实例的同时实现该实例的图形化描述。
如下图给出了一个简单的GUI界面,学生可以参考如下图设计出自己的GUI界面。
程序如下:hf=figure('Position',[200,200,700,500],...'Name','信计08(2)班阿卜杜热黑木20080803417', ...'NumberTitle','off','MenuBar','none');uicontrol(hf,'Style','Frame','Position',[0,0.15,0.45,1],...'Units','normalized','Back',[0,1,1]);COMM1=['n=str2num(get(he1,''String''));', ...%求导连接'b=sym(get(he7,''String''));',...'dec=diff(b,n);', ...'set(he8,''string'',char(dec));'];COMM2=['a=str2num(get(he2,''String''));', ...%求极限连接'f=sym(get(he7,''String''));',...'lim=limit(f,a);', ...'set(he8,''string'',char(lim));'];COMM3=['g=sym(get(he7,''String''));',... %不定积分连接'int_1=int(g);', ...'set(he8,''string'',char(int_1));'];COMM4=['a=str2num(get(he3,''String''));', ... %级数求和连接'b=str2num(get(he5,''String''));', ...'f=sym(get(he7,''String''));',...'sum_1=symsum(f,a,b);', ...'set(he8,''string'',char(sum_1));'];COMM5=['a=str2num(get(he4,''String''));', ... %定积分连接'b=str2num(get(he6,''String''));', ...'f=sym(get(he7,''String''));',...'int_2=int(f,a,b);', ...'set(he8,''string'',char(int_2));'];COMM6=['f=get(he7,''String'');',...'dsolve_1=dsolve(f,''x'');', ...'set(he8,''string'',char(dsolve_1));'];COMM7=['f=get(he7,''String'');',...'ezplot(f);'];COMM8=['g=get(he8,''String'');',...'ezplot(g);'];uicontrol(hf,'Style','Push','Position',[0.02,0.9,0.11,0.06],...'String','求导','Units','normalized','Call',COMM1); uicontrol(hf,'Style','Text','Position',[0.17,0.85,0.08,0.1],...'Units','normalized','Horizontal','center',...'String','阶数','Back',[0,1,1]);he1=uicontrol(hf,'Style','Edit','Position',[0.25,0.9,0.15,0.06],...'Units','normalized','Back',[0,1,0]);uicontrol(hf,'Style','Push','Position',[0.02,0.72,0.13,0.06],...'String','求极限','Units','normalized','Call',COMM2);uicontrol(hf,'Style','Text','Position',[0.17,0.67,0.08,0.1],...'Units','normalized','Horizontal','center',...'String','极限点','Back',[0,1,1]);he2=uicontrol(hf,'Style','Edit','Position',[0.25,0.72,0.15,0.06],...'Units','normalized','Back',[0,1,0]);uicontrol(hf,'Style','Push','Position',[0.02,0.58,0.13,0.06],...'String','不定积分','Units','normalized','Call',COMM3);uicontrol(hf,'Style','Push','Position',[0.02,0.45,0.13,0.06],...'String','级数求和','Units','normalized','Call',COMM4);uicontrol(hf,'Style','Text','Position',[0.31,0.44,0.06,0.06],...'Units','normalized','Horizontal','center',...'String','上限','Back',[0,1,1]);he5=uicontrol(hf,'Style','Edit','Position',[0.38,0.45,0.06,0.06],...'Units','normalized','Back',[0,1,0]);uicontrol(hf,'Style','Text','Position',[0.17,0.44,0.06,0.06],...'Units','normalized','Horizontal','center',...'String','下限','Back',[0,1,1]);he3=uicontrol(hf,'Style','Edit','Position',[0.24,0.45,0.06,0.06],...'Units','normalized','Back',[0,1,0]);uicontrol(hf,'Style','Push','Position',[0.02,0.32,0.13,0.06],...'String','求定积分','Units','normalized','Call',COMM5);uicontrol(hf,'Style','Text','Position',[0.31,0.31,0.06,0.06],...'Units','normalized','Horizontal','center',...'String','上限','Back',[0,1,1]);he6=uicontrol(hf,'Style','Edit','Position',[0.38,0.32,0.06,0.06],...'Units','normalized','Back',[0,1,0]);uicontrol(hf,'Style','Text','Position',[0.17,0.3,0.08,0.06],...'Units','normalized','Horizontal','center',...'String','下限','Back',[0,1,1]);he4=uicontrol(hf,'Style','Edit','Position',[0.24,0.32,0.06,0.06],...'Units','normalized','Back',[0,1,0]);uicontrol(hf,'Style','Push','Position',[0.02,0.2,0.16,0.06],...'String','解微分方程','Units','normalized','Call',COMM6);uicontrol(hf,'Style','text','Position',[0.48,0.9,0.13,0.06],...'String','原函数','Units','normalized');he7=uicontrol(hf,'Style','edit','Position',[0.65,0.9,0.30,0.06],...'String','','Units','normalized','Back',[0,1,0]);uicontrol(hf,'Style','text','Position',[0.48,0.77,0.13,0.06],...'String','结果函数','Units','normalized');he8=uicontrol(hf,'Style','text','Position',[0.65,0.77,0.30,0.06],...'String','','Units','normalized','Back',[0,1,0]);h_axes=axes('position',[0.55,0.2,0.4,0.5]);uicontrol(hf,'Style','push','Position',[0.58,0.02,0.13,0.06],...'String','初始绘图','Units','normalized','call',COMM7);uicontrol(hf,'Style','push','Position',[0.80,0.02,0.13,0.06],...'String','结果绘图','Units','normalized','call',COMM8);uicontrol(hf,'Style','Push','Position',[0.02,0.02,0.08,0.06],...'String','退出','Units','normalized','Call', 'close');。
用MATLAB制作图形用户界面
用MATLAB制作图形用户界面MATLAB是一种流行的科学计算软件,它不仅在数值计算和数据分析领域有着广泛的应用,还提供了一种高效的界面设计工具,使得用户可以自定义和制作自己的图形用户界面(GUI)。
通过创建自定义的GUI,用户可以简化复杂操作,提高工作效率,下面就让我们来学习如何用MATLAB制作图形用户界面。
MATLAB的图形用户界面主要由以下几部分组成:窗口:窗口是GUI的基本元素,它提供了一个空间,用户可以在其中添加和组织各种控件(如按钮、文本框等)。
控件:控件是GUI中的基本元素,它们可以接收用户的输入,并在窗口中显示出来。
例如,按钮、文本框、滑动条等都是常见的控件。
菜单:菜单是GUI中的一种导航工具,它们可以链接到其他窗口或者函数,方便用户进行操作。
工具栏:工具栏是GUI中的一种快速执行工具,它们提供了一键执行常见操作的快捷方式。
下面就让我们通过一个简单的例子来学习如何用MATLAB制作一个简单的图形用户界面:打开MATLAB,在命令窗口输入“guide”,并按Enter键。
这将打开GUI设计工具。
在打开的GUI设计工具中,选择“Blank GUI”并点击“OK”,进入GUI编辑器。
在GUI编辑器中,你可以看到一个空白的窗口和一些控件。
你可以通过拖拽的方式将这些控件添加到窗口中。
选中你添加的控件,在右侧的“Properties”面板中,你可以修改控件的属性,如颜色、字体、大小等。
在设计完成后,点击“Save”按钮,保存你的GUI。
此时,MATLAB会生成一个.fig文件和一个.m文件。
其中.fig文件是GUI的图形文件,而.m文件包含了GUI的代码。
在生成的.m文件中,你可以编写控件的事件处理函数。
例如,当用户点击按钮时,应该执行什么样的操作。
在编写完事件处理函数后,你就可以运行你的GUI了。
在命令窗口输入“edit(gcf)”,然后按Enter键,就可以打开你的GUI并进行测试了。
MATLAB图形用户界面设计与开发教程
MATLAB图形用户界面设计与开发教程绪论:MATLAB是一种用于数学计算和科学数据可视化的强大软件工具。
它被广泛应用于工程、科学和数学领域。
而图形用户界面(Graphical User Interface, GUI)则是一种以图形形式呈现的软件界面,使用户能够通过可视化的方式与程序进行交互。
本教程将深入浅出地介绍MATLAB图形用户界面的设计与开发。
一、GUI的基本概念与原理在开始GUI设计之前,我们需要了解一些基本的概念与原理。
MATLAB提供了一套强大的GUI设计工具集,其中最常用的是GUIDE(GUI Development Environment)。
GUIDE允许用户使用可视化的方式来构建GUI界面,包括按钮、文本框、菜单等各种控件。
二、GUI设计的基本步骤1. 创建GUI界面:在MATLAB命令窗口中输入“guide”命令即可打开GUIDE 界面。
然后选择“Blank GUI”模板,点击“OK”按钮即可创建一个空白的GUI窗口。
2. 添加控件:在GUI界面上右键点击,选择“Insert”菜单来添加各种控件,比如按钮、文本框、列表框等。
选择控件后,通过拖拽的方式将其放置在GUI界面上。
3. 设计控件属性:通过在“Property Inspector”面板中修改控件的属性来定制化界面的外观和行为。
比如修改按钮的文本、设置文本框的宽度等。
4. 编写回调函数:在MATLAB命令窗口中输入“guide”命令即可打开GUIDE 界面。
然后选择“Blank GUI”模板,点击“OK”按钮即可创建一个空白的GUI窗口。
5. 保存并运行GUI:点击GUIDE界面上的“Save”按钮,保存GUI界面的m文件。
然后在MATLAB命令窗口中输入“run xxx.m”来运行GUI。
三、GUI界面的布局和设计原则好的GUI界面应当具备良好的布局和设计,以提高用户的使用体验。
以下是一些常用的布局和设计原则:1. 界面简洁明了:避免过多的控件和信息,让用户能够快速找到所需功能。
MATLAB学习笔记(十一)——MATLAB图形用户界面设计
MATLAB学习笔记(⼗⼀)——MATLAB图形⽤户界⾯设计(⼀)菜单设计⼀、建⽴⽤户菜单1、概况:⽤户菜单⼀般含有⼀级菜单和⼆级菜单,乃⾄多级菜单。
每⼀级菜单⼜包含多个菜单项。
建⽴菜单可以使⽤uimenu函数。
2、uimenu函数调⽤:%建⽴⼀级菜单的函数调⽤:⼀级菜单句柄=uimenu(图形窗⼝句柄,属性名1,属性值1,属性名2,属性值2,……);%建⽴⼀级菜单需给出图形窗⼝的句柄值。
%如果省略句柄值,MATLAB就在当前图形窗⼝中建⽴这个菜单项。
%如果当前没有图形窗⼝,则⾃动打开⼀个图形窗⼝。
%建⽴⼦菜单项的函数调⽤:⼦菜单项句柄=uimenu(⼀级菜单项句柄,属性名1,属性值1,属性名2,属性值2,……);⼆、菜单对象的常⽤属性:1、Label属性:取值是字符串,⽤于定义菜单项的名字。
可以在字符串中加⼊&字符,这时在菜单项名字上,跟随&字符有⼀条下划线,&字符本⾝不出现在菜单项中。
对于这种有带下划线的菜单,可以⽤Alt键加该字符键来激活相应的菜单项。
2、Accelerator属性:取值是任何字母,⽤于定义菜单项的快捷键。
3、Callback属性:可以是某个M⽂件名或者⼀组MATLAB命令。
即该命令被选中后,MATLAB会⾃动调⽤此回调函数进⾏相应。
4、Checked属性:取值是on或者off(缺省值),该属性为菜单项定义⼀个指⽰标记,可以⽤这个特性指明菜单项是否被选中。
5、Enable属性:取值是on(缺省值)或者off,这个属性控制菜单项的可选择性。
如果是off,则此时菜单项不可⽤,呈现灰⾊。
6、Position属性:取值是数值,定义⼀级菜单项在菜单条上的相对位置或者紫菜单项⼦菜单组内的相对位置。
7、Separator属性:取值是on或者off(缺省值)。
如果该属性为on,则在该菜单项上⽅添加⼀条分隔线,可以⽤来分隔同⼀菜单内的不同的功能。
⼀个demo:screen=get(0,'ScreenSize');W=screen(3);H=screen(4);figure('Color',[1,1,1],'Position',[0.2*H,0.2*H,0.5*W,0.3*H],'Name','图形演⽰系统','NumberTitle','off','MenuBar','none');%定义plot菜单项hplot=uimenu(gcf,'Label','&Plot');uimenu(hplot,'Label','Sine Wave','Callback',['t=-pi:pi/20:pi;','plot(t,sin(t));','set(hgon,''Enable'',''on'');','set(hgoff,''Enable'',''on'');','set(hbon,''Enable'',''on'');','set(hboff,''Enab;e'',''on'');']); uimenu(hplot,'Label','Cosine Wave','Callback',['t=-pi:pi/20:pi;','plot(t,cos(t));','set(hgon,''Enable'',''on'');','set(hgoff,''Enable'',''on'');','set(hbon,''Enable'',''on'');','set(hboff,''Enab;e'',''on'');']); %定义Option菜单项hoption=uimenu(gcf,'Label','&Option');hgon=uimenu(hoption,'Label','&Grid on','Callback','grid on','Enable','off');hgoff=uimenu(hoption,'Label','&Grid off','Callback','grid off','Enable','off');hbon=uimenu(hoption,'Label','&Box on','separator','on','Callback','box on','Enable','off');hboff=uimenu(hoption,'Label','&Box off','separator','off','Callback','box off','Enable','off');hwincor=uimenu(hoption,'Label','&Window Color','Separator','on');%定义window coloruimenu(hwincor,'Label','&Red','Accelerator','r','Callback','set(gcf,''Color'',''r'');');uimenu(hwincor,'Label','&Blue','Accelerator','b','Callback','set(gcf,''Color'',''b'');');uimenu(hwincor,'Label','&Yellow','Accelerator','y','Callback','set(gcf,''Color'',''y'');');uimenu(hwincor,'Label','&White','Accelerator','w','Callback','set(gcf,''Color'',''w'');');%定义Quit菜单项uimenu(gcf,'Label','&Quit','Callback','close(gcf)');三、快捷菜单1、概念快捷菜单是⽤⿏标右键单击某对象时在屏幕弹出的菜单。
MATLAB用户界面设计说明
滚动条’slider’ 图示某个范围。
按钮’pushbutton’ 其上的字符说明其作用。
切换按钮’toggle button’ 两状态按钮,单击改变其状态。
收音机按钮’radiobutton’ 一组选项,其中只能有一个被选中。
复选框’check button’ 一组选项,可以选择多项。
例:
h=warndlg({'error:','code1111.'},'Warning')
h=errordlg({'error:','code 1111.'},'Error')
5. 帮助信息对话框 与警告、错误信息对话框基本一致,仅仅是图标 的不同。
例:
h=helpdlg({'帮助信息:','帮助信息对话框和警告 错误对话框基本一致,只是图标不同!'},'帮助')
2.控件的常用属性
Units与 position属性 意义同上,这里的位置是相对该窗口的左下角;
String属性 标注在控件上,用来说明或提示;
Callback属性 实现该控件的实质性功能;
Enable属性 该控件的使能状态‘on’或‘off’ tag 属性
同上
例1:
h_main=figure(‘name’,‘a demo of gui design’,‘menubar’,‘none’,… 'numbertitle','off','position',[100 100 300 100]);
6.通用信息框 msgbox(‘显示信息’,’标题’,’图标’) 图标包括:Error、Help、Warn以及 Custom,如果缺省则为None。
《MATLAB程序设计教程(第二版)》第10章 MATLAB图形用户界面设计
10.3.3 对话框设计示例
例10-3 建立如图10-11所示的数制转换对话框。在左边输入 一个十进制整数和2~16之间的数,单击“转换”按钮能 在右边得到十进制数所对应的2~16进制字符串,单击 “退出”按钮退出对话框。 例10-4 建立如图10-12所示的图形演示对话框。在编辑框输 入绘图命令,当单击“绘图”按钮时,能在左边坐标轴绘 制所对应的图形,弹出框提供色图控制,列表框提供坐标 网格线和坐标边框控制。
5. Tab顺序编辑器 利用Tab顺序编辑器(Tab Order Editor),可以设置用户按键 盘上的Tab键时,对象被选中的先后顺序。选择Tools菜单 下的Tab Order Editor菜单项,就可以打开Tab顺序编辑器。
10.4.3 图形用户界面开发环境应用示例
例10-5 利用GUI设计工具设计图10-24所示的用户界面。
对象浏览器(Object Browser):可观察当前设计阶段的各个 句柄图形对象。 Tab顺序编辑器(Tab Order Editor):通过该工具,设置当用 户按下键盘上的Tab键时,对象被选中的先后顺序。
10.3.1 图形用户界面设计窗口 1.GUI设计模板 在MATLAB主窗口中,选择File菜单中的New菜单 项,再选择其中的GUI命令,就会显示图形用户界 面的设计模板。 MATLAB为GUI设计一共准备了4种模板,分别是 Blank GUI(默认) 、GUI with Uicontrols(带控件对象 的GUI模板) 、GUI with Axes and Menu(带坐标轴 与菜单的GUI模板)与Modal Question Dialog(带模式 问话对话框的GUI模板)。
10.2 菜单设计 10.2.1 建立用户菜单 要建立用户菜单可用uimenu函数,因其调用方法不 同,该函数可以用于建立一级菜单项和子菜单项。 建立一级菜单项的函数调用格式为:
第10章 MATLAB图形用户界面设计PPT课件
Error in ==> guide at 61 = guidetemplate;
可作如下操作:选择我的电脑,系统属性,高 级,环境变量,其中的系统变量的PATH路径中添 加C:\windows\system32;这个路径就可以了。
06.12.2020
3
06.12.2020
4
06.12.2020
5
06.12.2020
6
06.12.2020
7
06.12.2020
8
控件名 按钮 切换按钮 单选按钮 复选框 列表框
弹出框
文本框 静态文本 边框 滑动条 坐标轴
Property name Push button Toggle Button Radio Button Check Box List Box
Popup Menu
Edit Text Static Text Frame Slider axes
功能 用于相应鼠标单击,按钮说明其作用 单击时会凹凸切换 一组按钮只有一个可以被选中 可多个同时被选中 显示下拉文字列表,用户可从中选一或 多项 相当于文本框和列表框的组合,用户可 从下拉列表中选择 输入和编辑文字、数据 显示文字信息,不接受输入 将控件放在其中,装饰界面 用户移动滚动条改变数据 用于绘制图像
第10章 MATLAB图形用户界面设计
10.1 可视化界面环境 10.2 菜单设计 10.3 界面设计实例
06.12.2020
1
06.12.2020
2
如果在新建GUI时出现如下错误:
MATLAB的图形用户界面设计
UserData属性的取值是一个矩阵,缺省值为空矩阵,用户可以在 这个属性中保存与该菜单对象相关的重要数据或信息,借此可以达 到传递数据或信息的目的。可以用set和get函数访问该属性。
二、菜单设计
【例2】 建立一个菜单系统。
菜单条中含有File和Help两个菜单项。如果选择File中的New 选项,则将显示New Item字样,如果选择File中的Open选项, 则将显示出Open Item字样。File中的Save菜单项初始时处于禁 选状态,在选择Help选项之后将此菜单项恢复成可选状态,如 果选择File中的Save选项,则将出现一个新的菜单(三级菜单), 其中共有两个子菜单项Text file和Graphics file,如果选择第1项, 则将变量k1和k2分别赋为0和1,然后调用file01.m文件来进行 相应的处理(该文件需要另行编写),如果选择第2项,则将变 量k1和k2分别赋为1和0,然后调用file10.m文件来进行相应的 处理(该文件也需要另行编写)。如果选择File中的Save As选项, 则将显示Save As Item字样。如果选择File中的Exit选项,则将 关闭当前窗口。如果选择Help中About …选项,则将显示Help Item字样,并将Save•菜单设置成可选状态。
第八讲 MATLAB图形用 户界面设计
所谓图形用户界面是指由窗口、菜单、对 话框等各种图形对象组成的用户界面。在 这种用户界面下,用户的操作是通过“选 择”各种图形对象来实现的。
一、图形窗口的控制
一、图形窗口的控制
1.建立图形窗口 要建立一个图形窗口,有两种方法:
(1)菜单操作:在MATLAB命令窗口选择File菜单中 的New命令,再选取Figure子菜单,这样将建立一个标准 的MATLAB图形窗口;
MATLAB-GUI图形用户界面设计分析
1) 双击设计工作区的空白局部,翻开整个图形窗的属性框。
MuUnnuiBtsa或r: FnoonnteUnits可选择%:图i形nc窗he是s(英否寸使)用,标ce准nt菜im单eters
(厘N米am),e: cnaocrumlaatloizred%(按图比形例窗缩名放称),points(点阵), pixels
翻开GUI设计工作台的命令:
guide
%翻开设计工作台启动界面
guide file %在工作台中翻开文件名为file的用户界面
菜单项[ File:New->GUI ] %翻开设计工作台启动界面
留意:guide命令中文件名不区分大小写。
翻开的GUI启动界面供给新建界面( Create New GUI )或 翻开已有界面文件( Open Existing GUI )的属性页。新建界面 可以选择空白界面、包含有控件的模板界面、包含有轴对象
riFghotn。tUnits: points
%字体大小的度量单位
Ho控riz件on句ta柄lATliaggn有m默en认t: 值Ce,nt建er议修%改对为齐带方有式具体含义的字 符S串tr,ing以: E增x加pr程ess序io可n 读性和%便待利显回示调的函字数符调用。
Tag: text1
%该静态文本框的句柄handles.text1
留意: 1) 先完成大致界面布局,再编写功能程序。 2) 界面风格要全都,且符合使用习惯。例如,一般习惯图形
区在上面或左面,把握区在下面或右面等等。
2023/10/12
3
GUI图形用户界面
例如,以本次试验的内容“计算器”为例。
1) 功能分析:完成数字的四则运算,以及一局部常用的科学 计算:sin, cos, log等等。
MATLAB图形用户界面设计与实例展示
MATLAB图形用户界面设计与实例展示一、引言在当今科技发展日新月异的时代,图形用户界面(Graphical User Interface,简称GUI)已经成为了我们日常生活和工作中不可或缺的一部分。
作为一种直观、交互式的界面设计方式,GUI已经广泛应用于各个领域,包括但不限于商业软件、教育应用、科学研究等。
在本文中,我们将聚焦于MATLAB图形用户界面的设计与实例展示。
二、MATLAB GUI简介MATLAB是一种强大的数值计算和数据分析工具,其广泛的功能和开放的界面设计平台使得用户可以自由地根据自己的需求进行个性化的界面设计。
MATLAB提供了一系列GUI的工具箱,包括“GUIDE(Graphical User Interface Development Environment)”以及可视化编程语言“App Designer”,这些工具箱可以帮助用户快速构建自己的图形用户界面。
三、MATLAB GUI设计的基本原则1.简洁明了:在设计GUI时,我们应该尽量避免过多的冗余信息和复杂的布局,保持界面简洁明了,以便用户能够快速理解和使用。
2.一致性:保持界面的一致性是GUI设计的重要原则之一。
在整体风格、按钮布局、颜色选择等方面保持统一,可以提高用户的使用体验。
3.友好交互:GUI的主要目的是提高用户的交互体验。
在设计时,我们应该注重用户的感受,尽量使用户操作简单、直观,避免繁琐的步骤和复杂的操作。
四、MATLAB GUI实例展示1.数据可视化界面我们可以利用MATLAB的强大绘图功能来设计一个数据可视化界面,将用户所输入的数据实时可视化展示出来。
例如,我们可以设计一个简单的数据收集和绘图界面,用户可以通过GUI界面输入自己的数据,并选择绘制的类型和样式,最后点击绘图按钮,即可在界面上看到实时的绘图结果。
2.图像处理界面利用MATLAB的图像处理工具箱,我们可以设计一个图像处理界面,方便用户进行图像的编辑、增强和处理等操作。
matlab-GUI-操作讲义-图形用户界面设计
%字体大小
FontUnits normaliszed 位,缩放时保持字体比例
%采用相对度量单
HorizontalAlignment Center
%文字中心对齐
String
Grid on %在按键上显示Grid on
Tag
GridOn_push
%生成
handles.GridOn_push域存放该键句柄
6
7.1.2 一般制作步骤
界面制作包括界面设计和程序实现。 分析界面所要实现的主要功能,明确设
计任务; 绘界面草图,注意从使用者的角度来考
虑界面布局; 按构思的草图,上机制作静态界面; 编写界面动态功能程序。
7
7.2 图形用户界面设计
7.2.1 可视化的界面环境
MATLAB6.5版本提供的GUI设计工具较前面的版本 有较大的改善,设计界面变化很大。打开GUI设计 工具的方法有以下几种:
14
填写菜单名,如果在前面加“&”符号则加快捷键,当运
7.2.2 创建用户菜单 行时第一个字母会加下划线,以便用户快速激活菜单项
新 建 菜 单
新建子菜单1在.菜GU单菜单左右移I设、编计辑菜单上、下移工作删除菜单台分的隔菜符 单条选择“Tool”
标记
-”Menu Editor…”或单击工具栏“Menu
Tag
figuer1
%生成handles.figure1域存放图形窗句柄
29
7.3 图形用户界面设计工具应用(续)
在轴属性编辑框中,设置如下属性值:
Units normalized 缩放时保持比例
%采用相对度量单位,
Box off
%坐标轴不封闭
Tag
axes1
经典MATLAB图形用户界面设计
使用场景
按钮适用于需要用户进行选择或确认的操作, 例如开始、停止、重置等。
属性设置
可以设置按钮的文本、大小、位置、样式等 属性。
事件处理
当用户点击按钮时,会触发相应的事件,可 以通过编写回调函数来处理该事件文本信息。
属性设置
可以设置文本框的长度、宽度、字体、颜色等属性。
事件处理
当用户滑动滑块时,会触发相应的事件,可以通过编写回调函数来处理该事件。
下拉菜单
功能描述
下拉菜单用于显示多个选项供用户选择。
属性设置
可以设置下拉菜单的选项、默认选项 等属性。
使用场景
适用于需要提供多个选项供用户选择 的场景,如文件打开、保存等。
事件处理
当用户选择下拉菜单中的某个选项时, 会触发相应的事件,可以通过编写回 调函数来处理该事件。
添加事件处理函数
为每个按钮添加事件处 理函数,实现点击按钮 后执行相应的计算操作。
显示结果
在GUI界面上添加一个文 本框,用于显示计算结 果。
保存和运行
保存GUI文件,并运行程 序,测试计算器功能是 否正常。
设计一个数据可视化GUI
加载和预处理数据
使用Matlab的函数加载数据, 并进行必要的预处理。
表格
功能描述
表格用于显示和编辑二维数 据表格。
使用场景
适用于需要展示和编辑大量 数据的场景,如数据统计、 数据分析等。
属性设置
事件处理
可以设置表格的行数、列数、 单元格内容、样式等属性。
当用户编辑表格中的数据时, 会触发相应的事件,可以通 过编写回调函数来处理该事 件。
04
高级GUI设计技巧
使用布局管理器
化的界面设计和代码生成功 能。
Matlab图形用户界面设计
姓名学号专业班级课程名称MATLAB程序设计A 实验名称图形用户界面设计实验日期同组人员指导教师得分【实验名称】图形用户界面设计【实验类型】设计性实验【实验目的与要求】目的:(1)利用MATLAB进行图形用户界面的综合性设计;(2)完成语言编程。
要求:(1)学习利用MATLAB进行图形用户界面的编辑与设计;(2)掌握图形界面的后台语言编程的基本方法。
【实验主要仪器设备及台套数】装有MATLAB(版本7.1)应用软件的计算机。
【实验学时】2学时1.绘制曲线xxy sin)5sin(2=,并建立一个与之相联系的快捷捷菜单,用以控制曲线的线性和曲线宽度。
2.利用GuI设计工具设计如图所示的用户界面。
该界面包括一个用于显示图形的坐标轴对象,显示的图形包括表面图、网络图和等高线图。
绘制图形所需要的数据通过一个弹出框来选取。
在弹出框中包括3 个选项,分别对应MATLAB的数据函数peaks、membrane和用户自定义的绘图数据sinc,用户可以通过选择相应的选项来载入相应的绘图数据。
在图形窗口默认的菜单条上添加一个菜单项select,select下又有两个字菜单项yellow和red,选中yellow项时窗口将变成黄色,选中red项时图形窗口将变成红色。
3.建立如图所示的图形演示窗口。
在编辑框输入a、b、c的值,当单机“绘图”按钮时,绘制cbxax++2的图形,观察参数a、b、c对图形的变化。
【实验步骤】1.题操作步骤(1)打开MATLAB软件。
(2)在command window 窗口中输入以下代码。
x=0:pi/100:2*pi;y=2*sin(5*x).*sin(x);hl=plot(x,y);hc=uicontextmenu; %建立快捷菜单hls=uimenu(hc,'Label','线型'); %建立菜单项hlw=uimenu(hc,'Label','线宽');uimenu(hls,'Label','虚线','Call','set(hl,''LineStyle'','':'');');uimenu(hls,'Label','实线','Call','set(hl,''LineStyle'',''-'');');uimenu(hlw,'Label','加宽','Call','set(hl,''LineWidth'',2);');uimenu(hlw,'Label','变细','Call','set(hl,''LineWidth'',0.5);');set(hl,'UIContextMenu',hc); %将该快捷菜单和曲线对象联系起来2.题操作步骤(1)打开GUI设计窗口,添加有关图形对象。
matlab 第十章 图形用户界面GUI制作
第十章内容简介本书由纸质媒体和电子媒体有机结合而成。
纸质媒体便于读者进行系统、全面、长时间连续地阅读,便于随心的翻阅、浏览;而电子媒体向读者提供色彩信息、动态交互的软件环境,提供读者实践本书内容所需的各种文件。
本书第一章系统讲述MATLAB6.5的集成工作平台,引导读者初会MATLAB基本用法。
第二、三章系统叙述MATLAB6.1的四大基本数据类型(数值数组、字符串数组、元胞数组、构架数组),至于其它扩展数据类型(函数句柄、符号数据、内联函数、unit数组、稀疏类)则另辟章节专述。
此后,本书用九个独立章分述MATLAB6.5的数值计算、符号计算、函数和数据可视、面向对象编程、GUI交互操作界面设计、EXE独立应用程序生成、实现不同软件平台交互的API、M-book 数据图形文字环境集成等八大通用功能。
本书用专门的一章深入浅出地阐明SIMULINK的分层建模、仿真功能、与MATLAB交互的功能。
全书包含390多个计算范例。
所有算例的程序是可靠、完整的。
读者可以在自己的MATLAB环境中完全准确地重现本书所提供的算例结果。
算例的举一反三,将使读者很快掌握要领,从模仿走向灵活应用。
书中正文(包括算例)所涉及的指令全部罗列在附录的“A索引”中,用户很容易根据关键字符找到相关的正文说明和算例应用。
本书随带包含700多个文件的光盘。
光盘文件包含:可直接在Notebook中运行的全部算例的M-book DOC文件;可在MATLAB环境中直接运行的算例M和MDL文件;可供读者实践MATLAB编译器及API的所有文件;可在PowrPoint中放映幻灯的PPT文件。
它们不仅有效地提供了纸质媒体所不具备的交互能力和色彩感染力,而且弥补了纸质媒体没有SIMULINK模型源码文件、没有PPT源码文件、没有编译源文件和验证文件的缺陷。
本书既可作为理工科院校研究生、本科生系统学习的教材,又可以作为广大科技工作者掌握和精通MATLAB的自学用书和使用手册。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MATLAB图形句柄 10.1 MATLAB图形句柄
2.属性的操作 set函数 函数: (1) set函数:设置属性 set(H,PName1,value1,PName2,value2, ) set(H,PName1,value1,PName2,value2,…) H:用于指明要操作的图形对象。 Pname:属性名 Value:要设置的属性值 get函数 函数: (2) get函数:读取属性 V=get(H, V=get(H,PName) 其中V是返回的属性值。 如果省略属性名,则将返回句柄所有的属性值。 在同一坐标下绘制红、绿两根不同曲线, 例10.2 在同一坐标下绘制红、绿两根不同曲线,希望获 得绿色曲线的句柄, 得绿色曲线的句柄,并对其进行设置 exp10_2.m
第10章 MATLAB图形用户界面设计
10.3 对话框设计
二、对话框的设计
1.建立控件对象 MATLAB提供了用于建立控件对象的函数uicontrol,其调 用格式为: H=uicontrol(mH,PName1,Value1,PName2,Value2…) H=uicontrol(mH,PName1,Value1,PName2,Value2 ) H :生成的对话框控件句柄 mH:为图形窗口句柄
第10章 MATLAB图形用户界面设计
三、图形对象的创建
3. 曲线对象 建立曲线对象使用line函数,其调用格式为: H=line(x,y,z,PName1,value1,PName2,value2, ) H=line(x,y,z,PName1,value1,PName2,value2,…) 其中对x,y,z的解释与高层曲线函数plot和plot3等一样, 其余的解释与前面介绍过的figure和axes函数类似。 每个曲线对象也具有很多属性。除公共属性外,其他常 用属性如下:Color属性、LineStyle属性、LineWidth属 性、Marker属性、MarkerSize属性等。 10例10-5 利用曲线对象绘制曲线 exp10_5.m
Pname:属性名 Value:属性值
其中各个属性名及可取的值和前面介绍的uimenu函数相似
第10章 MATLAB图形用户界面设计
二、对话框的设计
2.控件对象的属性 MATLAB的10种控件对象使用相同的属性类型,但是这些 属性对于不同类型的控件对象,其含义不尽相同。除 Children、Parent、Tag、Type、UserData、Visible等 公共属性外,还有一些常用的特殊属性。 建立如下图所示的图形演示对话框。 例10.8 建立如下图所示的图形演示对话框。在编辑框输 入绘图命令,当单击“绘图”按钮时, 入绘图命令,当单击“绘图”按钮时,能在左边坐标轴 绘制所对应的图形,弹出框提供色图控制, 绘制所对应的图形,弹出框提供色图控制,列表框提供 坐标网格线和坐标边框控制。 坐标网格线和坐标边框控制。 exp10_8.m
第10章 MATLAB图形用户界面设计
10.4 图形用户界面设计工具
MATLAB的用户界面设计工具共有6个,它们是: (1) 图形用户界面设计窗口(guide):创建、安排各种图形对象。 (2) 菜单编辑器(Menu Editor):创建、设计、修改下拉式菜单 和右键菜单。 (3) 对象属性查看器(Property Inspector):查看/修改各对象 属性 (4) 位置调整工具(Alignment Tool):调整对象的位置。 (5) 对象浏览器(Object Browser):可观察当前设计阶段的各个 句柄图形对象。 (6) Tab顺序编辑器(Tab Order Editor):通过该工具,设置当 用户按下键盘上的Tab键时,对象被选中的先后顺序。
第10章 MATLAB图形用户界面设计
10.2 菜单设计
一、建立用户菜单
要建立用户菜单可用uimenu函数,因其调用方法不同, 该函数可以用于建立一级菜单项和子菜单项。 H=uimenu(mH, H=uimenu(mH,'PName1', value1,'PName2',value2,...) mH:上级句柄,
第10章 MATLAB图形用户界面设计
10.3 对话框设计
一、对话框的控件
在对话框上有各种各样的控件,利用这些控件可以实现 有关控制。 (1) 按钮(Push Button);(2) 双位按钮(Toggle Button); (3) 复选框(Check Box);(4) 单选按钮(Radio Button); (5) 列表框(List Box); (6) 弹出框(Popup Menu); (7) 编辑框(Edit Box); (8) 滑动条(Slider); (9) 静态文本(Static Text); (10) 边框(Frame)。
第10章 MATLAB图形用户界面设计
一、图形用户界面计窗口
2.GUI设计窗口 GUI设计窗口 在GUI设计模板中选中一个模板,然后单击OK按钮,就会 显示GUI设计窗口。选择不同的GUI设计模式时,在GUI设 计窗口中显示的结果是不一样的。 GUI设计窗口由菜单栏、工具栏、控件工具栏以及图形对 象设计区等部分组成。GUI设计窗口的菜单栏有File、 Edit、View、Layout、Tools和Help 6个菜单项,使用其 中的命令可以完成图形用户界面的设计操作。
第10章 MATLAB图形用户界面设计
MATLAB图形句柄 10.1 MATLAB图形句柄
三、图形对象的创建
1. 图形窗口对象 建立图形窗口对象使用figure函数,其调用格式为: H=figure(PName1,value1,PName2,value2, ) H=figure(PName1,value1,PName2,value2,…) MATLAB通过对属性的操作来改变图形窗口的形式。 figure 或 H=figure 按MATLAB缺省的属性值建立图形窗口 close(H) 关闭图形窗口
第10章 MATLAB图形用户界面设计
10.2 菜单设计
三、右键菜单 右键菜单是用鼠标右键单击某对象时在屏幕上弹出的菜 单。这种菜单出现的位置是不固定的,而且总是和某个 图形对象相联系。在MATLAB中,可以使用uicontextmenu 函数和图形对象的UIContextMenu属性来建立右键菜单, 具体步骤为: (1) 利用uicontextmenu函数建立右键菜单。 (2) 利用uimenu函数为右键菜单建立菜单项。 (3) 利用set函数将该右键菜单和某图形对象联系起来。 绘制曲线y=2sin(5x)sin 并建立一个右键菜单, 例10.7 绘制曲线y=2sin(5x)sinx,并建立一个右键菜单, 用以控制曲线的线型和曲线宽度。 用以控制曲线的线型和曲线宽度。exp10_7.m
第10章 MATLAB图形用户界面设计
第10章 MATLAB图形用户界面设计
10.1 10.2 10.3 10.4 MATLAB图形句柄 MATLAB图形句柄 菜单设计 对话框设计 图形用户界面设计工具
第10章 MATLAB图形用户界面设计
MATLAB图形句柄 10.1 MATLAB图形句柄
一、图形对象及其句柄
1.图形对象 MATLAB的图形对象包括计算机屏幕、图形窗口、坐标轴、 用户菜单、用户控件、曲线、曲面、文字、图像、光源、 区域块和方框等。每一个对象按树型结构组织。 2.图形对象句柄 MATLAB在创建每一个图形对象时,都为该对象分配唯一 的一个值,称其为图形对象句柄(Handle) 图形对象句柄(Handle) 图形对象句柄(Handle)。句柄是图形 对象的唯一标识符。 计算机屏幕作为根对象由系统自动建立,其句柄值为0 图形窗口对象的句柄值为一正整数,并显示在该窗口的 标题栏,其他图形对象的句柄为浮点数。
如果mH为窗口句柄,则H为一级菜单, 如果mH为一级菜单,则H为二级菜单,……
Pname:属性名 Value:属性值 H:生成的菜单对象句柄
第10章 MATLAB图形用户界面设计
10.2 菜单设计
二、菜单对象常用属性
菜单对象具有Children、Parent、Tag、Type、UserData、 Visible等公共属性,除公共属性外,还有一些常用的特 殊属性。 建立如下图所示的菜单。 例10.6 建立如下图所示的菜单。exp10_6.m
第10章 MATLAB图形用户界面设计
三、图形对象的创建
图形窗口常用属性 MenuBar、Name、NumberTitle、Resize、Position Units、Color、Pointer KeyPressFcn(键盘键按下响应) WindowButtonDownFcn(鼠标键按下响应) WindowButtonMotionFcn(鼠标移动响应) WindowButtonUpFcn(鼠标键释放响应) 10建立一个图形窗口。该图形窗口没有菜单条, 例10-3 建立一个图形窗口。该图形窗口没有菜单条,标 题名称为“我的图形窗口” 起始于屏幕左下角、 题名称为“我的图形窗口”,起始于屏幕左下角、宽度 和高度分别为450像素点和250像素点,背景颜色为绿色, 450像素点和250像素点 和高度分别为450像素点和250像素点,背景颜色为绿色, 且当用户从键盘按下任意一个键时, 且当用户从键盘按下任意一个键时,将在该图形窗口绘 制出正弦曲线。 制出正弦曲线。 exp10_3.m
第10章 MATLAB图形用户界面设计
三、图形对象的创建
常见坐标轴对象属性。 Box属性 GridLineStyle属性 Position属性 Units属性 Title属性 10利用坐标轴对象实现图形窗口的任意分割。 例10-4 利用坐标轴对象实现图形窗口的任意分割。 exp10_4.m 利用axes可以在不影响图形窗口上其他坐标轴的前提下 建立一个新的坐标轴,从而实现图形窗口的任意分割。
第10章 MATLAB图形用户界面设计