Matlab教程-用户图形界面设计
在Matlab中使用GUI设计用户界面
在Matlab中使用GUI设计用户界面引言
Graphical User Interface (GUI) 是现代计算机软件中常用的一种类型用户界面,
它通过图形化的形式提供了直观、易用的操作方式。Matlab作为一种功能强大的
数值计算软件,也提供了丰富的GUI设计工具,使得用户可以通过简单的拖拽和
设置,快速地创建出美观实用的用户界面。本文将介绍在Matlab中使用GUI设计
用户界面的基本原理和步骤,并结合实例演示具体操作。
一、Matlab中的GUI设计工具
Matlab提供了几种常用的GUI设计工具,包括GUIDE(GUI Development Environment)和App Designer。GUIDE是Matlab较早期的一个GUI设计工具,提供了可视化的编辑界面,方便用户进行界面布局和交互事件的设置。而App Designer是Matlab较新推出的GUI设计工具,相比GUIDE具有更加丰富的功能和更好的可视化编辑体验。在本文中,我们将以App Designer为例来介绍Matlab中
的GUI设计过程。
二、创建GUI应用程序
在Matlab的主界面中,点击"APPS"菜单,选择"App Designer"打开App Designer界面,然后点击"Create App"按钮创建一个新的GUI应用程序。在弹出的
对话框中输入应用程序的名称并设置保存位置,点击"Create"按钮即可创建一个空
的GUI应用程序。
三、设计用户界面
在App Designer中,可以通过拖拽和调整控件来设计用户界面。常用的控件包
用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的代码。
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窗口。
开发Matlab图形用户界面的基本知识
开发Matlab图形用户界面的基本知识
一、引言
Matlab是一种功能强大的工具,广泛应用于科学计算、数据分析和工程设计等
领域。它提供了丰富的函数库和工具箱,能够满足不同领域的需求。而开发
Matlab图形用户界面(Graphical User Interface,简称GUI)则可以让用户更加方便地与程序交互。
二、GUI的概念及优势
GUI是一种以图形方式展示程序界面的形式。相比于传统的命令行方式,GUI
具有以下优势:
1.用户友好:GUI以可视化的方式呈现信息,用户无需记忆复杂的命令和参数,只需通过鼠标点击或输入简单的数据即可完成操作。
2.交互性强:GUI可以提供各种控件,比如按钮、文本框、下拉列表等,用户
可以通过操作这些控件来实现与程序的交互。
3.功能强大:GUI可以结合Matlab的各种功能和工具箱,使得程序能够完成更
加复杂的任务,满足不同领域的需求。
三、GUI的开发步骤
1.界面设计:首先需要设计GUI的界面,确定需要哪些控件以及它们的位置和
布局。可以使用Matlab提供的GUIDE(GUI Development Environment)工具来进
行界面设计。
2.控件设置:根据界面设计的结果,需要为每个控件设置属性和回调函数。属
性包括控件的位置、大小、颜色等,而回调函数则定义了控件的响应行为。
3.事件驱动:GUI的交互是通过事件驱动的方式实现的。当用户操作某个控件时,会触发相应的事件,从而调用对应的回调函数执行相应操作。
4.数据传递:在GUI的开发过程中,通常需要进行数据的传递和处理。可以通
第七讲MATLAB图形用户界面(GUI)设计
第七讲MATLAB图形⽤户界⾯(GUI)设计
第7讲MATLAB图形⽤户界⾯(GUI)设计
图形⽤户界⾯(GUI, Graphical User Interface)是由图形控件构建的⽤于⼈与计算机交互信息的界⾯。
在图形⽤户界⾯上,⽤户可以根据界⾯上的提⽰信息完成⾃⼰的⼯作,⽽不需要记忆⼤量繁琐的命令,只需通过⿏标、键盘等便捷的⽅式与计算机交互信息、选择想要运⾏的程序、控制程序的运⾏、实时显⽰图形信息。
MATLAB创建的图形⽤户界⾯对象有三类:
⽤户界⾯控件,如按钮、列表框、编辑框等;
下拉菜单,如菜单、⼦菜单;
内容菜单,如弹出式菜单。
⼀、命令⾏建⽴⽤户界⾯的⽅法
1、创建控件
命令:uicontrol
调⽤格式:
1)uicontrol(‘PropertyName1’,value1, ‘PropertyName2’,value2,……)
功能:在当前图形⽤户的界⾯上,应⽤当前制定的属性值创建控件;
2)h=uicontrol(‘PropertyName1’,value1, ‘PropertyName2’,value2,……)
功能:在当前图形⽤户的界⾯上,应⽤当前制定的属性值创建控件,并返回控件的句柄;
3)uicontrol(FIG, ‘PropertyName1’,value1, ‘PropertyName2’,value2,……)
功能:在句柄FIG指定的图形⽤户界⾯上,创建控件;
4)h=uicontrol(FIG, ‘PropertyName1’,value1, ‘PropertyName2’,value2,……) 功能:在句柄FIG指定的图形⽤户界⾯上,创建控件,并返回控件的句柄。
MATLAB的图形用户界面设计
Байду номын сангаас 二、菜单设计
2.菜单对象常用属性
(1) Tag属性
Tag属性的取值是字符串,它定义了该菜单对象的一个标识值。定 义了Tag属性后,在任何程序中都可以通过这个标识值找出该菜单对 象。
(2) Type属性
Type属的取值总是uimenu,这个属性值标明图形对象的类型。对
菜单对象,其类型就是uimenu,用户不能改写这个属性。
二、菜单设计
程序如下:
screen=get(0,'ScreenSize'); W=screen(3);H=screen(4); hf=figure('Color',[1,1,1],'Position',[1,1,0.4*W,0.3*H],...
'Name','菜单设计示例一','NumberTitle','off','MenuBar','none'); hfile=uimenu(hf,'label','&File'); hhelp=uimenu(hf,'label','&Help');
一、图形窗口的控制
【例1】 建立一个图形窗口。该图形窗口起始于
matlab-GUI-操作讲义-图形用户界面设计
(4)所设计的界面和其上图形对象、控件对象都按比例缩放。
24
7.3 图形用户界面设计工具应用(续) 界面最终效果图如下所示:
25
7.3 图形用户界面设计工具应用(续) 由于本例的设计界面清晰、要求明确,所以 无需进行功能分析和绘制草图,而可直接进 入界面制作阶段。
3. 控件的常用属性 创建控件以后,需要对控件的各种属性进行设置,大部 分控件都具有以下属性。 (1)string属性:用于显示在控件上的字符串,起说明或
提示作用。 (2)callback属性:回调函数,与菜单的一样。 (3)enable属性:表示该控件是否有效,”on“表示有
效,”off“表示无效。 (4)tooltipstring属性:当鼠标放在控件上时显示提示信
String
%在界面上显示为空白
Tag
zeta_edit
%生成
ห้องสมุดไป่ตู้
handles.zeta_edit域存放弹出式选单句柄
Units
normalized
缩放时保持该区比例
%采用相对度量单位,
33
7.3 图形用户界面设计工具应用(续)
在上按键的属性编辑框中,设置如下属性值:
Fontsize 0.485
MATLAB-GUI图形用户界面设计分析
2) 界面草图:可以有多种风格的界面。给出几种设计草图。
草图一 草图二
草图三
3) 利用GUI设计工具实现草图的布局,caculator.fig。
4) 编写相应的程序完成计算器的各项功能, caculator.m。
2023/10/12
4
§2.2 图形用户界面设计工具介绍
GUI图形用户界面
MATLAB6.5版本的GUI设计工具较前面的版本有很大的 改善,设计界面变化很大。
end
2023/10/12
GUI图形用户界面
19
下面是关于加法的程序
GUI图形用户界面
function pushbutton11_Callback(hObject, eventdata, handles)
if(handles.start) 运算符号无法输入
%假设没有数字按入,一开头
content=”0.”;
1) 双击设计工作区的空白局部,翻开整个图形窗的属性框。
MuUnnuiBtsa或r: FnoonnteUnits可选择%:图i形nc窗he是s(英否寸使)用,标ce准nt菜im单eters
(厘N米am),e: cnaocrumlaatloizred%(按图比形例窗缩名放称),points(点阵), pixels
riFghotn。tUnits: points
%字体大小的度量单位
MaabGUI图形用户界面设计
一、图形用户界面开发环境(GUIDE)
Matlab提供了一套可视化的创建图形窗口的工具,使用 图形用户界面开发环境可方便地创建GUI应用程序,它可以 根据用户设计的GUI布局,自动生成M文件的框架,用户使用 这一框架编制自己的应用程序.
Matlab GUI 图形用户界面设计
用户界面是用户与计算机进行信息交流的方式.计算机 在屏幕显示图形和文本,若有扬声器还可产生声音.用户通过 输入设备(如:键盘、鼠标、跟踪球、绘制板或麦克风), 与计算机通讯.用户界面设定了如何观看和如何感知计算机、 操作系统或应用程序.通常,多是根据悦目的结构和用户界面 功能的有效性来选择计算机或程序.
Tab顺序编辑器的打开方式为:
① 选择Tools菜单下的Tab Order Editor...菜单项,就可以打开 Tab顺序编辑器.
② 从GUI设计窗口的工具 栏上选择Tab Order Editor...命令按钮.
二、控件对象及属性
1. GUI控件对象类型
控件对象是事件响应的图形界面对象.当某一事件发生 时,应用程序会做出响应并执行某些预定的功能子程序 (Callback).
③ 运行GUI程序
在命令窗口直接键入文件名或用openfig, open或 hgload命令运行GUI程序.
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的强大绘图功能来设计一个数据可视化界面,将用户
MATLAB图形用户界面设计与性能优化
MATLAB图形用户界面设计与性能优化
MATLAB(Matrix Laboratory)是一种强大的数学软件环境,被广泛应用于科学计算、数据分析和可视化等方面。为了更好地满足用户的需求,MATLAB提供了图形用户界面(GUI)设计的功能,使用户能够通过交互式的方式使用MATLAB进行工作。本文将讨论MATLAB图形用户界面设计与性能优化的相关议题。
一、MATLAB图形用户界面设计基础
当我们使用MATLAB进行科学计算或数据处理时,通常需要进行大量的数据输入和输出操作。而通过图形用户界面可以使这一过程更加直观、简便。在设计MATLAB的图形用户界面时,有几个基础的要素需要考虑:
1. 用户界面元素:图形用户界面由各种用户界面元素构成,如按钮、滑块、文本框等。这些元素可以通过MATLAB的GUI设计工具箱进行选择和定制。合理的选择和使用这些元素可以提高用户的操作效率。
2. 布局和风格:一个好的用户界面应该具备清晰的布局和一致的风格。合理的布局有助于用户快速定位所需的功能,而一致的风格可以增强用户的使用体验。
3. 交互和反馈:用户界面应该具备良好的交互能力和及时的反馈机制。用户能够通过界面与程序进行交互,并及时获得程序的执行结果反馈,这样可以提高用户与程序的互动效果。
二、MATLAB图形用户界面性能优化技巧
虽然MATLAB提供了方便的GUI设计工具箱,但是在编写复杂的图形用户界面时,还需要注意一些性能优化的技巧,以提高程序的运行效率和响应速度。
1. 预分配变量空间:在使用图形用户界面时,经常需要频繁地创建和销毁变量,这样会造成内存的频繁申请和释放,降低程序的性能。因此,可以在程序开始时预先分配好变量空间,避免频繁的内存操作。
经典MATLAB图形用户界面设计
使用自定义绘图函数
自定义绘图函数介绍
自定义绘图函数允许用户根据需要绘制复杂的图形。通过编写自定义绘图函数,可以实现特定的 绘图效果和功能。
使用方法
在自定义绘图函数中,使用Matlab的绘图函数(如`plot`、`scatter`等)来绘制图形。同时,可 以设置图形的样式、坐标轴等属性。
注意事项
自定义绘图函数需要仔细调试,确保绘制的图形准确无误。同时,需要注意图形的性能和效率。
使用ActiveX控件
01
ActiveX控件介绍
ActiveX控件是一种可以在不同软件平台上使用的可重复使用的软件组
件。通过使用ActiveX控件,可以在Matlab GUI中集成其他软件的功能。
02 03
使用方法
在Matlab中,可以使用`actxcontrol`函数创建ActiveX控件对象,并将 其添加到GUI界面中。然后,可以通过设置控件属性来配置其行为和外 观。
添加GUI组件
使用`uicontrol`函数添加各种GUI组 件,如按钮、文本框、滑块等。
VS
根据需要选择合适的组件类型,并设 置其属性,如位置、大小、显示文本 等。
设置GUI组件属性
使用`set`函数设置组件的各种属性, 如背景颜色、字体、边框样式等。
可以通过回调函数进一步定制组件的 行为和功能。
事件处理
Matlab中常见图形用户界面设计指南
Matlab中常见图形用户界面设计指南
在计算机科学和工程领域,图形用户界面(GUI)被广泛应用于各种软件和应
用程序中。Matlab作为一种重要的数值计算和数据可视化工具,同样也提供了丰
富的GUI设计功能。本文将探讨一些在Matlab中常见的GUI设计指南,帮助开发
者设计出具有良好用户体验的界面。
一. 界面布局与组件选择
1. 界面布局
在设计界面时,布局是至关重要的一环。一个良好的布局可以使界面更加美观、易于理解和操作。Matlab提供了多种布局管理器,例如网格布局和绝对布局。网
格布局可用于将界面元素划分为一个二维网格,可以灵活地控制组件的位置和大小。绝对布局则是通过指定坐标的方式来放置组件。在选择布局时,需根据界面的复杂程度和所需的排列方式进行选择。
2. 组件选择
Matlab提供了丰富的GUI组件,如按钮、文本框、下拉列表和复选框等。在
选择组件时,需考虑组件的用途和功能。例如,按钮可用于触发某个操作,文本框可用于显示文本或接收输入。除了内置的组件,Matlab还支持自定义组件,使开
发者可以根据需求自由定制界面。
二. 用户交互与反馈
1. 用户交互
一个好的GUI需要与用户进行交互,使用户能够通过界面完成所需的操作。Matlab提供了丰富的事件处理机制,可以响应用户的操作。例如,按钮的点击事
件可以触发某个函数的执行,滑动条的拖动事件可以实时更新其他界面元素的显示。在设计界面时,需要合理设置事件处理函数,以实现良好的用户交互。
2. 反馈机制
在用户与界面进行交互的过程中,良好的反馈机制可以帮助用户更好地理解其操作的结果。Matlab提供了多种反馈方式,如消息框、进度条和图形等。消息框可用于显示提示信息或警告信息,进度条可用于显示任务的进度,图形可用于将数据可视化。通过合理运用这些反馈机制,可以提高用户对界面操作结果的理解和满意度。
MATLAB_第6讲_GUI界面设计
MATLAB_第6讲_GUI界面设计
GUI(Graphical User Interface)是指图形用户界面,是一种通过
图形化方式与计算机程序进行交互的界面方式。MATLAB提供了强大的GUI
设计工具,使用户可以方便地创建各种交互式界面。
在MATLAB中,可以使用GUIDE(GUI Development Environment)工
具来创建GUI界面。GUIDE工具提供了可视化的界面设计器,可以通过拖
拽和调整控件的位置、大小和属性来设计界面。
GUI界面的设计通常包括两个主要的步骤:界面的布局和界面的回调
函数的编写。
首先是界面的布局,可以通过在GUIDE工具中添加各种控件来设计界
面的布局。常见的控件包括按钮、文本框、复选框、单选按钮、滑动条等。可以使用GUIDE工具提供的布局管理器来帮助快速设计界面。布局管理器
可以帮助控件在窗口缩放时自动调整位置和大小,以适应不同大小的窗口。
在设计界面时,还可以设置每个控件的属性,例如文本框的初始文本、按钮的颜色、滑动条的范围等。还可以为控件添加回调函数,以实现控件
的响应操作。回调函数可以是MATLAB脚本文件或匿名函数,用于处理控
件的事件,例如按钮的点击事件、滑动条值的改变等。
接下来是界面的回调函数的编写。当用户与界面上的控件进行交互时,会触发控件的相应事件,从而调用对应的回调函数。回调函数可以进行各
种操作,例如读取用户输入的数据、进行运算、更新界面上的显示等。
编写回调函数时,可以使用MATLAB提供的丰富的函数库和工具箱来
完成各种操作。例如,可以使用MATLAB内置的数据分析函数来处理用户
Matlab中的图形用户界面设计指南
Matlab中的图形用户界面设计指南
Matlab是一种广泛使用的数值计算工具,而图形用户界面(Graphical User Interface,GUI)则成为许多程序开发者实现用户友好和交互性的重要工具。本文
将探讨如何在Matlab中设计和开发图形用户界面,并分享一些设计指南和最佳实践。
1. 理解GUI的重要性
图形用户界面在软件开发中扮演着至关重要的角色。一个好的GUI设计能够提升用户体验,提供更直观、易于理解的界面,使用户能够高效地使用软件功能。因此,在进行GUI设计之前,我们需要对用户的需求和使用场景有充分的了解。
2. 选择合适的GUI设计工具
Matlab中提供了多种GUI设计工具,如GUIDE、App Designer等。GUIDE是Matlab中最早版本的GUI设计工具,而App Designer则是Matlab R2016a之后引入的新工具。两者均可以方便地进行GUI设计,具体选择哪个工具可以根据个人喜
好和项目需求来决定。
3. 界面布局与设计
在进行GUI设计时,界面的布局和设计是非常重要的。一个清晰、简洁的界面布局能够帮助用户更好地理解软件功能和操作流程。以下是一些建议:
3.1 选择合适的控件和布局
Matlab中有多种控件可供选择,如按钮、文本框、下拉菜单等。在选择控件时,应根据功能需求和用户习惯来决定。同时,通过合理的布局,将控件有序地排列在界面中,可以提高用户对界面的易用性。
3.2 考虑界面风格与颜色搭配
选择适合的界面风格和颜色搭配也是一个重要的设计考虑因素。一个统一、协
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.对象属性观察器
二、对象的常规信息 (1)Enable属性: 表示此控件的使能状态,设置为on”, 表示可选,为“off”时则表示不可选。 (2)Style:控件对象类型。 (3)Tag:控件表示(用户定义)。 (4)TooltipString属性:提示信息显示。当鼠标指针位于 此控件上时,显示提示信息。 (5)UserData:用户指定数据。 (6)Position:控件对象的尺寸和位置。 (7)Units:设置控件的位置及大小的单位 (8)有关字体的属性,如 FontAngle, FontName等。
25
7.6图形对象句柄命令
句柄系统可以从底层(1ow level)创建和操作线、 面、文字、图像等基本图形对象指令。
26
7.6.1建立图形对象的函数
1.figure函数:创建一个新的图形对象。 2.newplot函数:做好开始画新图形对象的准备。 3.axes函数:创建坐标轴图形对象。 4.line函数:画线。 5.patch函数:填充多边形。 6.surface函数:绘制三维曲面。 7.image函数:显示图片对象。 8.uicontrol函数:生成用户控制图形对象。 9.uimenu函数:生成图形窗口的菜单中层次菜单与下一 级子菜单。
1
0.5
0
-0.5
-1 -1
-0.5
0
0.5
1
29
7.6.2图形对象句柄的获得和删除
gcf函数:获得当前图形窗口的句柄 gca函数:获得当前坐标轴的句柄 gco函数:获得当前对象的句柄 gcbo函数:获得当前正在执行调用的对象的句柄 gcbf函数:获取包括正在执行调用的对象的图形 句柄 delete函数:删除句柄所对应的图形对象 findobj函数:查找具有某种属性的图形对象
17
例7-3 建立一个图形界面来显示和处理三维图形
基本功能要求如下。 (1)建立一个坐标系,以备以后来绘制三维图形; (2)建立三个按钮,用于启动绘图功能; (3)建立一个组合框(Popup Menu),用于显示不同的 图形。
18
解题步骤:
(1)打开布局编辑器 (2)增加组件 (3)对齐工具 (4)设置每个组件的属性; (5)设置Guide应用程序选项,采用默认属性。 (6)激活图形
第七讲 用户图形界面设计
1
本章目标
理解用户图形界面的用途 掌握图形用户界面的设计开发工具GUIDE 理解图形对象的常用句柄命令
2
主要内容
7.1图形用户界面设计工具GUIDE 7.2控件 7.3 GUIDE常用工具 7.4使用GUIDE的GUI设计 7.5句柄图形 7.6图形对象句柄命令
3
7.1图形用户界面设计工具GUIDE
32
上机指导
7.8 动画制作
例:编写一个演示程 序,用于显示小球沿 正弦曲线运动的运动 规律。
33
应用举例
利用界面设计工具guide,重新编写MATLAB中 平面演示程序graf2d.m。
34
解题步骤:
(1)利用界面编辑器,设计窗口初始位置和大小,添加 所需控件 (2)新建图形对象,对齐所有控件 (3)设置新建对象的属性 (4)在产生的M文件加入相应代码
21
程序代码:
function Contour_pushbutton_Callback(hObject, eventdata, handles) contour(handles.current_data); function data_popup_Callback(hObject, eventdata, handles) val=get(hObject,'Value'); str=get(hObject,'String'); switch str{val} case 'peaks' handles.current_data=handles.peaks; case 'membrane' handles.current_data=handles.membrane; case 'sinc' handles.current_data=handles.sinc; end guidata(hObject,handles);
12
3.对象属性观察器
四、控件当前状态信息 (1)ListboxTop:在列表框中显示的最顶层的字 符串的索引。 (2)Max:最大值。 (3)Min:最小值。 (4)Value:控件的当前值。
13
4.对象浏览器
对象浏览器里面列出了所有对象的树状结构, 这些结构就是当前正在设计的GUI程序中用到的 所有对象。
22
7.5句柄图形
句柄图形是对底层图形命令集合的总称, 它实际上进行生成图形的工作。
23
7.5.1句柄图形的层次关系
24
7.5.2图形窗口对象的属性
1.Color属性 2.MenuBar属性 3.Name属性 4.NumberTitle属性 5.Units 属性 6.Position属性 7.Resize属性 8.Visible属性 9.NextPlot属性 10.打印纸属性 11.各种回调函数
20
程序代码:
function My0703_OpeningFcn(hObject, eventdata, handles, varargin) handles.peaks=peaks(35); handles.membrane=membrane; [x,y]=meshgrid(-8:0.5:8); r=sqrt(x.^2+y.^2)+eps; sinc=sin(r)./r; handles.sinc=sinc; handles.current_data=handles.peaks; surf(handles.current_data); handles.output = hObject; guidata(hObject, handles); function varargout = My0703_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output; function Surf_pushbutton_Callback(hObject, eventdata, handles) surf(handles.current_data); function Mesh_pushbutton_Callback(hObject, eventdata, handles) mesh(handles.current_data);
30
7.6.3对象属性的获取和设置
(1)get函数返回某些对象属性的当前值。例如:
p=get(hf_1,'Position') ;
(2)函数set改变句柄图形对象属性,例如:
set(hf_1,'Position',vect);
31
扩展阅读
7.7公用对话框文件
文件选择对话框 颜色选择对话框 字体选择对话框 页面设置对话框 警告与错误信息对话框 简单帮助信息对话框
19
程序代码:
function varargout = My0703(varargin) gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @My0703_OpeningFcn, ... 'gui_OutputFcn', @My0703_OutputFcn, ... 'gui_LayoutFcn', [], ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end
27
例7-4 显示曲线图
程序: h=figure(); t=0:pi/10:2*pi; line(t, sin(t)); line(t, cos(t));
1
0.5
0
-0.5
-1
0
1
2
3
4
5
6
7
28
例7-5显示多边形。
程序: x=0:pi/4:2*pi; patch(sin(x),cos(x),'r')
可视化图形界面开发环境Guide Graphical User Interface Development Environment
4
用户界面开发环境组成
(1)菜单栏; (2)Guide工具栏; (3)图形控件面板; (4)界面编辑客户区。
5
7.2 控件
1.静态文本(Static Text) 3.列表框(Listbox)控件 5.按钮(Push Button)控件 7.单选按钮(Radio Button)控件 9.检查框(Check Box)控件 11.弹出式菜单(Popup Menu)控件 13.面板(Panel)控件 2.编辑框(Edit Text)控件 4.滚动条(Slider)控件 6.开关按钮(Toggle Button)控件 8.按钮组(Button Group)控件 10.列表框(Listbox)控件 12.坐标轴(Axes)控件
14
5.菜单编辑器
菜单编辑器提供了两种菜单类型的编辑功能:
下拉式菜单(Menu Bar) 弹出式菜单(Context Menu)
15
例7-2 编写一个3D立体图的演示程序
16
7.4使用GUIDE的GUI设计
使用Guide进行GUI的界面设计,就像在纸上绘 制界面一样简单。
界面编辑工具-设计出界面的大体方案 事件过程编辑器-编写各个对象的事件代码
35
程序代码-1
function line_pushbutton_Callback(hObject, eventdata, handles) cmdStr=str2mat( ... ' % Line plot of a chirp', ... ' x=0:0.05:5;', ... ' y=sin(x.^2);', ... ' plot(x,y);' ... ); set(handles.edit1,'String',cmdStr); evalmcw(handles.edit1); function bar_pushbutton_Callback(hObject, eventdata, handles) cmdStr=str2mat( ... ' % Bar plot of a bell shaped curve', ... ' x = -2.9:0.2:2.9;', ... ' bar(x,exp(-x.*x));' ... ); set(handles.edit1,'String',cmdStr); evalmcw(handles.edit1);
8
2.对齐工具
9
3.对象属性观察器
一、控件风格和外观 (1)BackgroundColor:设置控件背景颜色,使 用[R G B]或颜色定义。 (2)CData:在控件上显示的真彩色图像,使用 矩阵表示。 (3)ForegroundColor:文本颜色。 (4)String属性:控件上的文本,以及列表框和 弹出菜单的选项。 (5)Visible:控件是否可见。
6
7.3 GUIDE常用工具
Layout Editor:布局编辑器; Alignment Tool:对齐工具; Property Inspector:对象属性观察器; Object Browser:对象浏览器; Menu Editor:菜单编辑器。
7
1.布局编辑器
(1)Cut:对选中的控件进行剪切操作。 (2)Copy:复制选中的控件。 (3)Paste:粘贴复制的控件。 (4)Delete:删除选中的控件。 (5)Duplicate:对选中的控件进行复制并粘贴。 (6)Property Inspector:对选中的控件打开属性检查器。 (7)Object Browser:打开对象浏览器。 (8)ButtonDownFcn:按下鼠标时控件回调的函数。 (9)Callback:单击鼠标时控件回调的函数或功能。 (10)CreateFcn:定义控件在创建阶段执行的回调例程。 (11)DeleteFcn:定义在对象的删除阶段执行的回调例程。
11
3.对象属性观察器
三、控件回调函数的执行 (1)BusyAction:处理回调函数的中断。有两种选项: 即Cancel:取消中断事件,queue:排队(默认设置)。 (2)ButtonDownFcn属性:按钮按下时的处理函数。 (3)CallBack属性:是连接程序界面整个程序系统的实 质性功能的纽带。该属性值应该为一个可以直接求值的字 符串,在该对象被选中和改变时,系统将自动地对字符串 进行求值。 (4)CreateFcn:在对象产生过程中执行的回调函数。 (5)DeleteFcn:删除对象过程中执行的回调函数。 (6)Interruptible属性:指定当前的回调函数在执行时是 否允许中断,去执行其他的函数。