第7章MATLABGUI设计MATLAB大学教程肖汉光-邹雪-宋涛_第1页
第7章MATLABGUI设计MATLAB大学教程肖汉光-邹雪-宋涛_第2页
第7章MATLABGUI设计MATLAB大学教程肖汉光-邹雪-宋涛_第3页
第7章MATLABGUI设计MATLAB大学教程肖汉光-邹雪-宋涛_第4页
第7章MATLABGUI设计MATLAB大学教程肖汉光-邹雪-宋涛_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

主要内容第1章MATLAB概述及系统环境第2章MATLAB矩阵及其运算第3章MATLAB数据可视化第4章MATLAB程序设计第5章MATLAB数值计算第6章MATLAB符号运算第7章MATLABGUI设计第8章MATLABSimulink仿真第9章MATLAB在电路仿真中的应用第10章MATLAB在数字信号处理中的应用绪论第11章MATLAB在数字图像处理中的应用第12章MATLAB在电磁场与电磁波中的应用第7章MATLABGUI设计

GUI基本介绍

GUI创建

GUI的M文件

GUI实例7.1GUI基本介绍

7.1.1GUI简介

图形用户界面是一种人与计算机通信的界面显示格式,它允许用户使用鼠标、键盘等输入设备操纵屏幕上的图标或菜单选项,以选择命令、调用文件、启动程序或执行其他一些日常任务。MATLAB为表现其基本功能而设计的演示程序demo是使用图形界面的最好范例。MATLAB的用户在指令窗中运行demo打开图形界面后,只要用鼠标进行选择和单击,就可浏览丰富多彩的内容。7.1GUI基本介绍

GUIDE开发环境开发GUI

打开可视化界面编辑环境有两种方式:(1)在命令窗口中输入Guide或GuideFilename命令即可打开GUIDEQuickStar界面,如图7.1所示。(2)通过MATLAB菜单栏,依次选择File→New→GUI,打开GUIDEQuickStar界面。图7.1GUIDEQuickStar界面7.1GUI基本介绍

GUIDE开发环境开发GUI

在GUIDEQuickStar界面中有两个选项卡,分别为CreateNewGUI和OpenExistingGUI。CreateNewGUI

BlankGUI选项创建空白的可视化文件;

GUIwithUicontrols选项创建具有控件的可视化界面;

GUIwithAxesandMenu选项创建具有坐标轴和菜单的可视化界面;

ModalQuestionDialog选项创建具有模态问题对话框的可视化界面。用户可以根据需要,在选择相应的选项和保存路径后,单击OK按钮即可。通过GUIDEQuickStar创建一个完整的GUI会同时生成同名的.fig和.M文件。.fig文件:保存的是GUI的外观设计信息,可以在这个文件界面上进行控件的添加、删除、放大缩小、移动位置等控件布局操作。.M文件:即控件所要执行的功能则全部在M文件中编辑。图7.2是一个空白的可视化界面。7.1GUI基本介绍

7.1.2入门示例

为快速掌握MATLABGUI的设计,下面来看一个完整的入门示例:设计一个能够根据用户选择,显示正弦波、矩形波、锯齿波的GUI界面。

首先打开MATLAB应用程序,选择菜单栏中的File→New→GUI,打开GUIDEQuickStar界面,选择BlankGUI创建一个空白界面。从左侧控件面板区将三个PushButton控件、一个Axes控件和一个StaticText控件拖放到中间设计面板区,如图7.3所示。

将三个PushButton按钮的String属性和Tag属性分别改为“正弦函数”和fun1、“矩形函数”和fun2、“锯齿函数”和fun3;将StaticText标签的String属性改为“显示函数”,其他为默认值。图7.3入门实例设计界面7.1GUI基本介绍

将三个PushButton按钮的String属性和Tag属性分别改为“正弦函数”和fun1、“矩形函数”和fun2、“锯齿函数”和fun3;将StaticText标签的String属性改为“显示函数”,其他为默认值。选中“正弦函数”按钮,单击右键选择ViewCallbacks→ButtonDownFcn,进入M文件中回调函数的编辑,系统会自动生成一个空的fun1_ButtonDownFcn函数,该步骤表示当鼠标单击该按钮时,在坐标轴控件中会显示正弦函数。因此,需要在fun1_ButtonDownFcn函数下编写如下代码:7.1GUI基本介绍

7.1GUI基本介绍

单击.fig文件工具栏中的运行按钮即可运行GUI界面。当单击要显示的函数按钮时,窗口中就会显示相应的函数,如图7.4所示。

图7.4入门实例界面7.1GUI基本介绍

控件名称属性名称图标样式功能描述按钮PushButton用户单击按钮时返回true,单击按钮事件立即触发单选按钮RadioButton为用户提供由两个或多个互斥选项组成的选项集,每组单选按钮中只能有一个被选中开关按钮ToggleButton为用户提供选中或不选中的控件按钮组ButtonGroup容器控件,将一组单选按钮、复选框等组织在一起编辑框EditText供用户创建和编辑文本或图形静态文本StaticText只用于显示文本,不能接收用户的输入列表框ListBox供用户在下拉列表框中选择输入值,可选多个值滚动条Slider用户通过鼠标或键盘移动滚动条上的方块位置来改变滚动条的当前值复选框CheckBox为用户提供由两个或多个选项组成的选项集,每组复选框中的选项可多个被选中弹出式菜单PopupMenu与ListBox控件功能类似,但只能选择一个值坐标轴Axes输出图形、函数等的区域面板Panel与ButtonGroup控件功能类似表格Table输入数据的区域,可进行数据传递ActiveX控件ActiveXControlActiveX控件是可以在应用程序和网络计算机上重复使用的程序对象7.1.3控件创建表7.1MATLABGUI中常用控件7.2GUI创建

7.2.1菜单设计菜单分为标准菜单和弹出式菜单。设计菜单时选择菜单栏中的Tools→MenuEditor,打开如图所示的菜单编辑器界面。在MenuEditor界面中有两个选项卡:标准菜单MenuBar和弹出式菜单ContextMenus,工具栏中从左到右依次为创建新菜单、子菜单、弹出式子菜单,←表示下级菜单变为上级菜单,→表示上级菜单变为下级菜单,↑和↓箭头表示在同级中移动菜单的位置,X表示删除选中的菜单。

选择界面MenuEditorMenuEditor界面7.2GUI创建

1.标准菜单创建新菜单后会出现相关属性:Label是菜单的名称,Tag是标示,Accelerator表示快捷键,Separatorabovethisitem表示在选中的菜单上面添加分隔栏,Enablethisitem表示该菜单是否可用,Callback表示该菜单选项的回调函数,MoreProperties表示更多的属性设置。右图中创建了标准菜单File、Tools和help,其中Files包括子菜单New、Open、Close,图为标准菜单的位置和样式。

7.2GUI创建

2.弹出式菜单

弹出式菜单与标准菜单的创建方法类似,其区别在于弹出式菜单右面的属性只有Tag和Callback,如图7.8所示。要想在编辑栏中实现单击鼠标右键,可在出现的弹出式菜单中,将编辑框EditText的属性UIContextMenu设置为菜单的Tag名即可。

图7.8弹出式菜单创建7.2GUI创建

7.2.2对话框设计

输入对话框用于接收用户输入,输出对话框用于输出信息以便提示用户,而每种对话框都有对应的提示信息和按钮。

1.输入框

输入对话框作为用户输入的界面,在MATLAB中用inputdlg函数来创建,同时提供了OK和Cancel两个按钮。inputdlg函数命令格式如下:

Answer=inputdlg(prompt,name,numlines,defaultanswer,options)7.2GUI创建

说明:(1)Answer是用户的输入,为元胞数组。(2)prompt为提示信息字符串,用引号括起来,为元胞数组。(3)name为标题字符串,用引号括起来,可以省略。(4)numlines用于指定输入值的行数,可以省略。(5)defaultanswer为输入的默认值,用引号括起来,是元胞数组,可以省略。(6)options指定对话框是否可以改变大小,取on或off,省略时为off,表示不能改变大小,如果为on,则自动变为无模式对话框,可以改变大小。7.2GUI创建

【例7.1】使用inputdlg函数输入正弦函数的振幅和频率,在命令窗口输入如下代码:

>>prompt={'请输入正弦函数的振幅:','请输入正弦函数的频率:'};>>name='输入';>>numlines=1;>>defaultanswer={'5','10'};>>answer=inputdlg(prompt,name,numlines,defaultanswer)运行结果:

answer='5''10'程序分析:直接单击OK按钮,输出默认值,如果用户输入其他值,输出会相应地改变。

7.2GUI创建

2.输出框

输出框用于输出显示信息。使用msgbox函数来创建,每种类型的输出框都由不同图标来标识,且只提供了一个OK按钮。msgbox函数的命令格式如下:H=msgbox(message,title,icon,icondata,iconcmap,createmode)说明:(1)H为输出对话框的句柄。(2)message为显示的信息,可以是字符串或数组。(3)title为标题字符串,用引号括起来,可以省略。(4)icon为显示的图标,可取值为'none'(无图标)、'error'(报错图

标)、'help'(帮助图标)、'warn'(警告图标)或'custom'(自定义图标),也可以省略。(5)当icon使用'custom'时,用icondata定义图标的数据,用iconcmap定义图标的颜色。(6)createmode为对话框的产生模式,可以省略。

7.2GUI创建

【例7.2】使用msgbox函数输出报错信息。在命令窗口输入如下代码:>>message='密码错误,请重新输入!';>>title='出错';>>icon='error';>>h=msgbox(message,title,icon);程序运行结果:弹出如下图所示的报错对话框。

7.2GUI创建

除上述Msgbox函数创建输出框外,MATLAB还提供了几种专用输出框函数,这些函数及属性如表7.2所示。

名功

能图

标按钮显示errordlg出错对话框仅OK按钮warndlg警告对话框仅OK按钮helpdlg帮助对话框仅OK按钮questdlg提问对话框一个或多个按钮,默认为OK、No、Cancel三个按钮listdlg列表对话框无OK和Cancel按钮表7.2专用输出框函数7.2GUI创建

【例7.3】使用questdlg函数输出提问信息。在命令窗口输入如下代码:

>>question='是否继续?';>>title='提问';>>choice=questdlg(question,title,‘Yes’,‘No’,‘Yes’);程序运行结果:弹出如下图所示的提问对话框。

7.2GUI创建

7.2.3文件管理框

MATLAB提供了文件管理框的设计,可以实现打开文件、保存文件和浏览文件夹等功能。1.打开和保存文件

使用uigetfile函数创建打开文件对话框,使用uiputfile函数创建保存文件对话框,用户可以在文件管理对话框中实现路径和文件类型的选择。函数命令格式如下:

[Filename,Pathname]=uigetfile(Filterspec,Title,x,y)[Filename,Pathname]=uiputfile(Filterspec,Title,x,y)说明:(1)Filename为用户选择的文件名,Pathname为文件所在路径,可省略,如取消选择,返回值均为0。(2)Filterspec为对话框中显示的文件名。(3)Title为对话框标题字符串,可以省略。(4)X、Y分别表示对话框在屏幕上的位置,单位是像素,可以省略。7.2GUI创建

【例7.4】使用uigetfile函数和uiputfile函数创建打开文件对话框和保存文件对话框。在命令窗口输入如下代码:>>[filename,pathname]=uigetfile('*.*','打开文件')>>[filename,pathname]=uiputfile('*.m','保存文件')程序分析:如果用户选中某个文件,那么返回的是该文件名和所在路径;如果选择“取消”,则返回值为0。值得注意的是,这里的“打开”和“保存”不是真正意义上的打开和保存,后续还需用专门的命令实现文件的相关操作。7.2GUI创建

2.浏览文件夹MATLAB使用uigetdir函数来打开浏览文件夹对话框,命令格式如下:Directoryname=uigetdir(Startpath,Title)说明:Directoryname为用户的选择路径,Startpath为开始路径,title为对话框标题。7.2GUI创建

【例7.5】使用uigetdir函数创建浏览对话框。在命令窗口输入如下代码:>>directoryname=uigetdir('F:\ProgramFiles');程序运行结果:弹出如下图所示的提问对话框。7.3GUI的M文件

控件的功能执行主要通过回调函数来实现,每个控件都有几种回调函数。右键单击控件,在出现的菜单中选择ViewCallbacks,会出现Callback、CreateFcn、DeleteFcn、ButtonDownFcn、KeyPressFcn选项。Callback最常用、最一般的回调函数CreateFcn初始化样式、颜色、初始值等DeleteFcn在空间对象被清除的时发生ButtonDownFcn鼠标单击时发生KeyPressFcn按键事件时发生7.3GUI的M文件

选中上述函数后,会自动跳转到相应的

Editor中编辑代码,GUIDE会自动生成相应的函数体、函数名。函数名称一般是控件Tag+Call类型名,参数有三个,分别是hObject、eventdata和handles,其中hObject为发生事件的源控件,eventdata为事件数据结构,handles为传入的对象句柄。7.4GUI实例

7.4.1MATLABGUI设计步骤MATLABGUI设计的一般步骤总结如下:(1)利用GUIDE向导的模板创建初始界面,在界面上布置控件、菜单栏和工具栏,可以借助MATLAB提供的界面设计器、菜单编辑器与工具栏编辑器来设计。(2)利用属性编辑器、菜单编辑器及工具栏编辑器为每个对象赋予属性值,最重要的属性是Tag,它将作为该对象的标识出现在对象浏览器和M文件编辑器中。(3)利用M文件编辑器编写初始化函数,结束自函数、对象回调函数及使用到的子函数,设计出具有强大功能的图形用户界面。(4)利用M文件的调试方法得到正常运行的GUI。7.4GUI实例

7.4.2设计实例【例7.6】利用MATLAB的GUI程序设计一个具备图像边缘检测功能的用户界面。该设计程序有以下基本功能:(1)图像的读取和保存。(2)设计图形用户界面,让用户对图像进行彩色图像到灰度图像的转换,并显示原图和灰度图像。(3)设计图形用户界面,让用户能够根据需要来选择边缘检测算子,即选择边缘检测的方法。(4)设计图形用户界面,让用户能够自行设定检测的阈值和方向。(5)显示边缘检测后的图像,并与原图和灰度图像进行对比。(6)其他功能。7.4GUI实例

根据上述分析完成如下步骤:建立菜单,选项包括“文件”(打开、保存、退出)、“检测方法”(sobel、prewitt、roberts、canny)和“帮助”。建立3个坐标轴对象,用于显示原始图像、灰度图像和边缘检测后的图像。建立1个按钮,用于将原始图像转换为灰度图像。建立1个文本编辑框,用于输入数据。建立菜单,选项包括“文件”(打开、保存、退出)、“检测方法”(sobel、prewitt、roberts、canny)和“帮助”。7.4GUI实例

界面设计

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论