《matlab中GUIDE工具建立GUI界面PPT课件》由会员分享,可在线阅读,更多相关《matlab中GUIDE工具建立GUI界面PPT课件(24页珍藏版)》请在金锄头文库上搜索。
1、第第1616章章 GUIDE GUIDE工具建立工具建立GUIGUI界面界面MATLAB可视化界面的设计,一般有两种方法,一是直接可视化界面的设计,一般有两种方法,一是直接通过编辑通过编辑M脚本文件产生脚本文件产生GUI,这个方法在上一章已经,这个方法在上一章已经进行详细的介绍。二是通过进行详细的介绍。二是通过MATLAB图形用户界面开发图形用户界面开发环境环境GUIDE(Graphical User Interface Development Environment)来建立)来建立GUI界面。界面。GUIDE是是MATLAB为为编写编写GUI界面提供的集成开发工具。本章将对界面提供的集成开发
2、工具。本章将对GUIDE进进行详细的介绍,包括常用的控件、控件的属性、自动产行详细的介绍,包括常用的控件、控件的属性、自动产生的生的M文件等。然后通过一些例子程序,讲解如何使用文件等。然后通过一些例子程序,讲解如何使用这些控件。最后给出了两个综合一些的例子,介绍了如这些控件。最后给出了两个综合一些的例子,介绍了如何建立更加实用的何建立更加实用的GUI界面。界面。16.1 16.1 采用采用GUIDEGUIDE建立建立GUIGUIGUI是通常包含图形窗口、坐标轴、菜单、按钮和文本等是通常包含图形窗口、坐标轴、菜单、按钮和文本等的用户界面。的用户界面。GUIDE提供了很多工具用于建立提供了很多工具
3、用于建立GUI界面。界面。这些工具大大的简化了设计和建立这些工具大大的简化了设计和建立GUI的过程。的过程。16.1.1 16.1.1 图形用户界面概述图形用户界面概述MATLAB为图形用户界面开发提供了一个方便高效的集成为图形用户界面开发提供了一个方便高效的集成开发环境,开发环境,GUIDE。GUIDE是一个界面设计工具集,提是一个界面设计工具集,提供了界面的外观、属性和回调函数等。供了界面的外观、属性和回调函数等。GUIDE将用户保将用户保存好的存好的GUI界面保存在一个界面保存在一个FIG资源文件中,同时还能够资源文件中,同时还能够产生包含产生包含GUI初始化和组件界面布局控制代码的初始
4、化和组件界面布局控制代码的M文件。文件。这个这个M文件为实现回调函数提供了一个参考框架。文件为实现回调函数提供了一个参考框架。16.1.1 GUIDE16.1.1 GUIDE启动启动用户可以在用户可以在MATLAB的命令行窗口输入:的命令行窗口输入:guide来启动来启动GUIDE。产生。产生GUIDE的快速启动窗口,如图的快速启动窗口,如图16.1所示。所示。在图在图16.1中,创建新的中,创建新的GUI时,有时,有4个模版可以选择:个模版可以选择:Blank GUI (Default):系统默认为空白模版。:系统默认为空白模版。GUI with Uicontrols:带有:带有uicont
5、rol对象的模版。对象的模版。GUI with Axes and Menu:带有坐标轴和菜单的模版。:带有坐标轴和菜单的模版。Modal Question Dialog:带有问答式对话框的模版。:带有问答式对话框的模版。16.1.3 GUI16.1.3 GUI对象的常用属性对象的常用属性利用属性查看器可以查看对象的属性值,也可以对属性值利用属性查看器可以查看对象的属性值,也可以对属性值进行修改。用鼠标选中某个对象,然后单击工具栏的进行修改。用鼠标选中某个对象,然后单击工具栏的Property Inspector按钮或用鼠标双击该对象,则可以按钮或用鼠标双击该对象,则可以调用该对象的属性查看器。
6、下面介绍一些常用的属性。调用该对象的属性查看器。下面介绍一些常用的属性。1控件风格和外观控件风格和外观BackgroundColor:设设置控件背景置控件背景颜颜色,使用色,使用R G B或或颜颜色定色定义义。CData:在控件上:在控件上显显示的真彩色示的真彩色图图像,使用矩像,使用矩阵阵表示。表示。ForegroundColor:用于:用于设设置控件上置控件上显显示的文本的示的文本的颜颜色。色。String属性:属性:设设置控件上的文本,以及列表框和置控件上的文本,以及列表框和弹弹出菜出菜单单的的选项选项等。等。Visible:设设置控件是否可置控件是否可见见,可以取,可以取值为值为on或
7、或off,默,默认认值为值为on,即控件可,即控件可见见。当。当Visible属性属性设设置置为为off时时,控,控件不可件不可见见,但是控件仍然存在。,但是控件仍然存在。16.1.3 GUI16.1.3 GUI对象的常用属性对象的常用属性2控件的常规信息控件的常规信息Enable属性:表示控件的使能状属性:表示控件的使能状态态,取,取值值可以可以为为on、inactive和和off,默默认值为认值为on。设设置置为为on时时,该该控件可用。控件可用。设设置置为为inavtive时时,控件,控件不可用,但是外表看起来和不可用,但是外表看起来和为为on时时一一样样。设设置置为为off时时,表示控
8、件不,表示控件不可用。可用。Style:设设置控件置控件对对象的象的类类型,可以取型,可以取值为值为pushbutton、togglebutton、radiobutton、checkbox、edit、text、slider、frame、listbox、popupmenu,系,系统统默默认值为认值为pushbutton。Tag:该该属性属性为为控件名称,利用控件名称,利用该该名称来命名控件的回名称来命名控件的回调调函数的名称。函数的名称。例如,例如,对对于于pushbutton类类型的按型的按钮钮,GUIDE默默认认的的Tag属性属性为为pushbutton1,则则回回调调函数函数为为pushb
9、utton1_Callback( )。TooltipString属性:属性:该该属性属性为为字符串,用来字符串,用来设设置提示信息。当鼠置提示信息。当鼠标标指指针针位于此控件上位于此控件上时时,显显示示该该提示信息。提示信息。UserData:设设置用置用户户指定的数据。利用指定的数据。利用该该属性可以属性可以实现实现数据的数据的传递传递。Position:该该属性属性设设置控件置控件对对象的位置和大小,向量象的位置和大小,向量为为x y width height。Units:设设置控件的位置及大小等的置控件的位置及大小等的单单位,可以取位,可以取值为值为pixels、normalized、i
10、nches、points、centimeters和和characters。16.1.3 GUI16.1.3 GUI对象的常用属性对象的常用属性3控件的回调函数控件的回调函数BusyAction:处处理回理回调调函数的中断。有两种函数的中断。有两种选项选项:即:即Cancel:取消中断事件,:取消中断事件,queue:排:排队队(默(默认设认设置)。置)。ButtonDownFcn属性:按属性:按钮钮按下按下时时的的处处理函数。理函数。CallBack属性:是属性:是连连接程序界面整个程序系接程序界面整个程序系统统的的实质实质性功性功能的能的纽带纽带。该该属性属性值应该为值应该为一个可以直接求一
11、个可以直接求值值的字符串,的字符串,在在该对该对象被象被选选中和改中和改变时变时,系,系统统将自将自动动地地对对字符串字符串进进行行求求值值。CreateFcn:在:在对对象象产产生生过过程中程中执执行的回行的回调调函数。函数。DeleteFcn:删删除除对对象象过过程中程中执执行的回行的回调调函数。函数。Interruptible属性:指定当前的回属性:指定当前的回调调函数在函数在执执行行时时是否允是否允许许中断,去中断,去执执行其他的函数。行其他的函数。16.1.3 GUI16.1.3 GUI对象的常用属性对象的常用属性4. 控件当前状控件当前状态态信息信息ListboxTop:在列表框中
12、:在列表框中显显示的最示的最顶层顶层的字符串的索引。的字符串的索引。Max:最大:最大值值。Min:最小:最小值值。Value:控件的当前:控件的当前值值。对对于于单选单选按按钮钮如果被如果被选选中中时时,该该属属性的性的值为值为Max属性属性值值,如果没被,如果没被选选中,中,则为则为Min属性属性值值。16.1.4 GUI16.1.4 GUI的的M M文件文件利用利用GUIDE可以生成可以生成M文件框架,通过文件框架,通过M文件决定文件决定GUI用户用户操作的响应。通过操作的响应。通过GUIDE可以自动生成可以自动生成M文件,然后在文件,然后在M文件中编写文件中编写GUI控件的回调函数。控
13、件的回调函数。M文件由多个子函数构成,包括主函数、文件由多个子函数构成,包括主函数、Opening函数、函数、Output函数和回调函数。其中,主函数不能修改,和文函数和回调函数。其中,主函数不能修改,和文件名相同。件名相同。16.1.5 16.1.5 数据传递数据传递在在GUI的各个控件之间进行数据传递,可以采用以下两种的各个控件之间进行数据传递,可以采用以下两种方法:利用结构体方法:利用结构体handles和控件的和控件的UserData属性。属性。结构体结构体handles保存了保存了GUI的数据。当在运行的数据。当在运行GUI时,时,M文文件会自动产生结构体件会自动产生结构体handl
14、es,其中保存了所有,其中保存了所有GUI对对象的数据,可以看作是一个数据的容器。用户可以在象的数据,可以看作是一个数据的容器。用户可以在handles中找到所有控件的信息。中找到所有控件的信息。handles在各个控件在各个控件的的callback之间传来传去。之间传来传去。在结构体在结构体handles中新建字段中新建字段a,并保存变量,并保存变量a的值。的值。handles.a=a;guidata(hObject, handles);16.2 16.2 简单实例分析简单实例分析利用利用GUIDE可以非常方便的建立可以非常方便的建立GUI界面,同时建立了界面,同时建立了M文件框架。通过在文
15、件框架。通过在M文件的回调函数中添加程序,可以文件的回调函数中添加程序,可以非常快速的建立非常快速的建立GUI界面。下面通过几个例子,介绍如界面。下面通过几个例子,介绍如何使用何使用GUIDE提供的控件。提供的控件。16.2.1 16.2.1 简单的按钮简单的按钮【例【例16-2】简单的按钮例子。打开】简单的按钮例子。打开GUIDE,在,在GUI布局区布局区放置放置Push Button按钮。调制控件大小和窗口大小。双按钮。调制控件大小和窗口大小。双击该按钮设置属性值,击该按钮设置属性值,String设置为:关闭。设置为:关闭。choice=questdlg(你确定要关闭吗?,关闭对话框,Ye
16、s,No,No);switch choice, case Yes delete(handles.figure1); return; case No return;end16.2.2 16.2.2 简单的滑动条简单的滑动条【例【例16-3】简单的滑动条例子。打开】简单的滑动条例子。打开GUIDE,在,在GUI布局布局区放置静态文本控件区放置静态文本控件Static Text和滑动条控件和滑动条控件Slider。然后用鼠标双击静态文本控件,设置然后用鼠标双击静态文本控件,设置String属性的值为:属性的值为:“简单滑动条例子!简单滑动条例子!”。设置滑动条的属性,最大值为。设置滑动条的属性,最大
17、值为1.0,最小值为,最小值为0,最小步长,最小步长SliderStep为为0.01 0.1。16.2.3 16.2.3 弹出式菜单弹出式菜单【例【例16-4】弹出式菜单例子程序。打开】弹出式菜单例子程序。打开GUIDE,在,在GUI布布局区放置静态文本控件局区放置静态文本控件Static Text、可编辑文本、可编辑文本Edit Text,还有弹出式菜单,还有弹出式菜单Pop-up Menu。设置静态文本控。设置静态文本控件的件的String属性为:你选择的颜色。可编辑文本的属性为:你选择的颜色。可编辑文本的String属性为空。设置弹出式菜单的属性为空。设置弹出式菜单的String属性。修
18、改属性。修改文字的大小为文字的大小为14。用鼠标拖动来修改控件的大小和窗口。用鼠标拖动来修改控件的大小和窗口的大小。的大小。16.2.4 16.2.4 列表框列表框【例【例16-5】列表框例子程序。打开】列表框例子程序。打开GUIDE,在,在GUI布局区布局区放置可编辑文本放置可编辑文本Edit Text和列表框和列表框Listbox。设置静态。设置静态文本控件的文本控件的String属性为空。设置列表框的属性为空。设置列表框的String属性。属性。修改控件的文字大小为修改控件的文字大小为14。用鼠标拖动来修改控件的大。用鼠标拖动来修改控件的大小和窗口的大小。小和窗口的大小。16.2.5 1
19、6.2.5 加法运算加法运算【例【例16-6】加法运算例子程序。打开】加法运算例子程序。打开GUIDE,在,在GUI布局布局区放置区放置2个可编辑文本个可编辑文本Edit Text,Tag属性分别为属性分别为edit1和和edit2。添加。添加3个静态文本个静态文本Static Text,Tag属性分别属性分别为为text1、text2和和text3。然后添加。然后添加pushbutton按钮,按钮,String属性为属性为“计算计算”。修改控件的文字大小为。修改控件的文字大小为14。用鼠。用鼠标拖动来修改控件和窗口的大小和位置。标拖动来修改控件和窗口的大小和位置。16.2.6 16.2.6
20、坐标轴坐标轴【例【例16-7】简单坐标轴例子程序。打开】简单坐标轴例子程序。打开GUIDE,在,在GUI布布局区放置坐标轴局区放置坐标轴Axes,3个可编辑文本个可编辑文本Edit Text,3个个静态文本静态文本Static Text,两个按钮,两个按钮pushbutton。3个静态个静态文本的文本的String属性分别为:频率、初相和幅值。属性分别为:频率、初相和幅值。3个可编个可编辑文本的辑文本的Tag属性分别为属性分别为edit1、edit2和和edit3,分别表,分别表示正弦信号的频率、初相和幅值,默认值分别为示正弦信号的频率、初相和幅值,默认值分别为10、0和和1。两个按钮的。两个
21、按钮的String属性分别为绘图和清除。修改控属性分别为绘图和清除。修改控件的文字大小为件的文字大小为14。用鼠标拖动修改控件和窗口的大小。用鼠标拖动修改控件和窗口的大小和位置。和位置。16.2.7 16.2.7 菜单菜单【例【例16-8】菜单例子程序。打开】菜单例子程序。打开GUIDE,在,在GUI布局区放布局区放置坐标轴置坐标轴Axes,单击工具栏的添加菜单按钮,编辑菜单。,单击工具栏的添加菜单按钮,编辑菜单。修改菜单的属性修改菜单的属性Label和和Tag。用鼠标拖动来修改控件和。用鼠标拖动来修改控件和窗口的大小和位置。窗口的大小和位置。16.2.8 16.2.8 快捷菜单快捷菜单【例【
22、例16-9】快捷菜单例子程序。打开】快捷菜单例子程序。打开GUIDE,在,在GUI布局布局区放置坐标轴区放置坐标轴Axes,单击工具栏的添加菜单按钮,编辑,单击工具栏的添加菜单按钮,编辑快捷菜单。修改菜单的属性快捷菜单。修改菜单的属性Label和和Tag。双击坐标轴,。双击坐标轴,显示坐标轴的属性设置窗口,修改坐标轴的属性显示坐标轴的属性设置窗口,修改坐标轴的属性UIContextMenu属性为属性为AxesMenu。用鼠标拖动来修改。用鼠标拖动来修改坐标轴和窗口的大小和位置。坐标轴和窗口的大小和位置。16.3 16.3 综合实例分析综合实例分析利用利用GUIDE设计设计GUI界面非常的方便、
23、简单。在设计复杂界面非常的方便、简单。在设计复杂的的GUI界面时,需要很多的控件,例如菜单、按钮、坐界面时,需要很多的控件,例如菜单、按钮、坐标轴等。下面介绍几个综合一些的例子程序。标轴等。下面介绍几个综合一些的例子程序。16.3.1 16.3.1 声音的显示和播放声音的显示和播放【例【例16-10】声音显示和播放例子。打开】声音显示和播放例子。打开GUIDE,在,在GUI布布局区放置坐标轴局区放置坐标轴Axes,添加弹出式菜单,添加弹出式菜单Pop-up Menu,添加,添加2个按钮个按钮pushbutton。双击弹出式菜单,修改属。双击弹出式菜单,修改属性值性值String,分别为:选择声
24、音、,分别为:选择声音、chirp、handel和和laughter。修连个按钮的。修连个按钮的String属性,分别为:播放声属性,分别为:播放声音和程序退出,修改音和程序退出,修改Tag属性分别是属性分别是palybutton和和closebutton。用鼠标拖动来修改坐标轴和窗口的大小。用鼠标拖动来修改坐标轴和窗口的大小和位置。和位置。16.3.2 16.3.2 语音实时采集和显示语音实时采集和显示【例【例16-11】语音实时采集和显示例子。打开】语音实时采集和显示例子。打开GUIDE,在,在GUI布局区放置布局区放置2个坐标轴个坐标轴Axes,添加,添加3个按钮个按钮pushbutto
25、n。修改。修改3个按钮的属性个按钮的属性String,分别为:开,分别为:开始、暂停和退出,始、暂停和退出,Tag属性分别为属性分别为startbutton、stopbutton和和exitbutton。修改控件的文字大小为。修改控件的文字大小为14。用鼠标拖动来修改坐标轴和窗口的大小和位置。用鼠标拖动来修改坐标轴和窗口的大小和位置。16.6 16.6 本章小结本章小结本章详细的介绍了用于本章详细的介绍了用于GUI界面开发的界面开发的GUIDE工具。工具。GUIDE提供了很多的控件,利用这些控件可以非常方便提供了很多的控件,利用这些控件可以非常方便的设计的设计GUI界面。读者对控件的常用属性需要有一个大界面。读者对控件的常用属性需要有一个大概的了解,通过属性的设置可以实现复杂的功能。对于概的了解,通过属性的设置可以实现复杂的功能。对于常用控件的使用,本章给出了简单的例子程序。最后,常用控件的使用,本章给出了简单的例子程序。最后,通过两个综合一些的例子,讲解如何设计复杂的通过两个综合一些的例子,讲解如何设计复杂的GUI界界面。面。放映结束 感谢各位的批评指导! 谢谢 谢!谢!让我们共同进步242021/3/9