1.8 MATLAB的图形界面
作为强大的科学计算软件,MATLAB也提供了图形用户界面(GUI)的设计和开发功能。MATLAB中的基本图形用户界面对象分为3类:用户界面控件对象(uicontrol)、下拉式菜单对象(uimenu)和内容式菜单对象(uicontextmenu)。其中,uicontrol()函数能建立按钮、列表框、编辑框等图形用户界面对象;uimenu()函数能建立下拉式菜单和子菜单等图形用户界面对象;uicontextmenu()函数能建立内容式菜单用户界面对象。利用上述函数,通过命令行方式,进行精心的组织,就可设计出一个界面良好、操作简单、功能强大的图形用户界面。
另外,为了能够像Visual Basic,Visual C++等程序设计软件一样简单、方便地进行GUI的设计与开发,MATLAB提供了一套方便、实用的GUI设计工具。GUI设计工具比较直观,适宜进行被设计界面上各控件的几何安排。但从总体上讲,GUI设计工具远不如直接使用指令编写程序灵活。由于篇幅所限,本文仅简单介绍GUI设计工具——GUI Builder。
1.启动GUI Builder
在MATLAB命令窗口中,可以用以下三种方法启动GUI Builder。
(1)在MATLAB的命令窗口中直接键入guide命令;
(2)在MATLAB工作窗口中,利用菜单命令File→New→GUI;
(3)在MATLAB左下角“Start”菜单中,单击“MATLAB”子菜单中的“GUIDE(GUI Build-er)”选项。
选择以上任意一种方法,便可打开GUI设计工具的模板界面,如图1-12所示。
图1-12 GUI设计模板界面
MATLAB为GUI设计准备了4种模板:Blank GUI(默认)、GUI with Uicontrols(带控件对象的GUI模板)、GUI with Axes and Menu(带坐标轴与菜单的GUI模板)、Modal Question Dialog(带模式问话对话框的GUI模板)。不同的设计模板,在对象设计编辑器中的显示结果是不同的。在GUI设计模板界面中选择一种模板,然后单击【OK】按钮后,就会显示对象设计编辑器(Layout Editor)。图1-13所示为选择Blank GUI模板后显示的对象设计编辑器界面。
图1-13 对象设计编辑器界面
2.对象设计编辑器
在对象设计编辑器界面的顶端工具栏中,特别给出了以下快捷工具按钮:位置调整(Align Objects)按钮“”、菜单编辑器(Menu Editor)按钮“”、Tab顺序编辑器(Tab Order Editor)按钮“”、M文件编辑器(M-file Editor)按钮“”、对象属性编辑器(Property Inspector)按钮“”、对象浏览器(Object Browser)按钮“”和显示设计结果(Run)按钮“”。利用菜单编辑器,可以创建、设置、修改下拉式菜单和内容式菜单。另外,利用菜单编辑器窗口界面左下角的第一个按钮【Menu Bar】也可创建下拉式菜单;第二个按钮【Context Menu】用于创建内容式菜单。而菜单编辑器界面左上角的第一个按钮用于创建下拉式菜单的主菜单;第三个按钮用于创建内容式菜单的主菜单;第二个按钮分别用于创建下拉式菜单和内容式菜单的子菜单。利用Run工具按钮可以随时查看设计的图形用户界面的显示结果。
用鼠标拖拉对象设计区(Layout Area)左边的工具按钮“”,便可在对象设计区依次生成Push Button,Slider,Radio Button,Check Box,Edit Text,Static Text,Pop-up Menu,ListBox,Toggle Button,Axes,Panel,Button Group,ActiveX Control等图形控件对象。创建对象后,利用鼠标右键可显示所选对象的一个弹出式菜单,可从中选择某一个子菜单项进行相应的设计。通过双击该对象,也会显示该对象的属性编辑器(Property Inspector),并对其属性值进行设置。
在对象设计区单击鼠标右键,会显示与编辑、设计整个图形窗口有关的弹出式菜单。
【例1-40】 利用图形用户界面生成一个按钮,来执行例1-6中的ex1-6.m程序。
解 ①利用Blank GUI模板,用鼠标拖拉在对象设计区生成一个“Push Button”按钮;
②双击“Push Button”按钮,显示该按钮的属性编辑器(Property Inspector),并将“String”的属性值Push Button改为“绘制极坐标方程曲线”;
③利用鼠标右键单击“Push Button”按钮,显示该按钮的弹出式菜单,执行菜单中的View Callbacks→Callback命令,按要求给定一个.fig文件名,如ex1-40后,自动打开一个同名的M文件,同时光标指向该按钮的回调函数function pushbutton1-Callback(…)命令处;
④在ex1-40.m文件中的回调函数function pushbutton1-Callback(…)命令后,增加一条命令:ex1-6。保存ex1-40.m文件后,同时也将对象设计编辑器中的文件自动保存为ex1 40.fig。
⑤在MATLAB命令窗口中,直接输入命令ex1-40,打开图形用户界面ex1-40.fig后,单击其“绘制极坐标方程曲线”按钮,便可显示如图1-5所示的结果。