第8章MATLAB图形用户界面设计8.1菜单设计8.2对话框设计8.3可视化图形用户界面设计8.1菜单设计8.1.1建立用户菜单要建立用户菜单可用uimenu函数,因其调用方法不同,该函数可以用于建立一级菜单项和子菜单项。建立一级菜单项的函数调用格式为:一级菜单项句柄=uimenu(图形窗口句柄,属性名1,属性值1,属性名2,属性值2,…)建立子菜单项的函数调用格式为:子菜单项句柄=uimenu(一级菜单项句柄,属性名1,属性值1,属性名2,属性值2,…)8.1.2菜单对象常用属性菜单对象具有Children、Parent、Tag、Type、UserData、Visible等公共属性,除公共属性外,还有一些常用的特殊属性。例8.1建立图8.1所示的图形演示系统菜单。菜单条中含有3个菜单项:Plot、Option和Quit。Plot中有SineWave和CosineWave两个子菜单项,分别控制在本图形窗口画出正弦和余弦曲线。Option菜单项的内容如图11-1所示,其中Gridon和Gridoff控制给坐标轴加网格线,Boxon和Boxoff控制给坐标轴加边框,而且这4项只有在画有曲线时才是可选的。WindowColor控制图形窗口背景颜色。Quit控制是否退出系统。8.1.3快捷菜单快捷菜单是用鼠标右键单击某对象时在屏幕上弹出的菜单。这种菜单出现的位置是不固定的,而且总是和某个图形对象相联系。在MATLAB中,可以使用uicontextmenu函数和图形对象的UIContextMenu属性来建立快捷菜单,具体步骤为:(1)利用uicontextmenu函数建立快捷菜单。(2)利用uimenu函数为快捷菜单建立菜单项。(3)利用set函数将该快捷菜单和某图形对象联系起来。例8.2绘制曲线,并建立一个与之相联系的快捷菜单,用以控制曲线的线型和曲线宽度。8.2对话框设计8.2.1对话框的控件在对话框上有各种各样的控件,利用这些控件可以实现有关控制。下面先介绍这些控件。(1)按钮(PushButton)。(2)双位按钮(ToggleButton)。(3)单选按钮(RadioButton)。(4)复选框(CheckBox)。(5)列表框(ListBox)。(6)弹出框(PopupMenu)。(7)编辑框(EditBox)。(8)滑动条(Slider)。(9)静态文本(StaticText)。(10)边框(Frame)。8.2.2对话框的设计1.建立控件对象MATLAB提供了用于建立控件对象的函数uicontrol,其调用格式为:对象句柄=uicontrol(图形窗口句柄,属性名1,属性值1,属性名2,属性值2,…)其中各个属性名及可取的值和前面介绍的uimenu函数相似,但也不尽相同,下面将介绍一些常用的属性。2.控件对象的属性MATLAB的10种控件对象使用相同的属性类型,但是这些属性对于不同类型的控件对象,其含义不尽相同。除Children、Parent、Tag、Type、UserData、Visible等公共属性外,还有一些常用的特殊属性。例8.3建立如图8.10所示的数制转换对话框。在左边输入一个十进制整数和2~16之间的数,单击“转换”按钮能在右边得到十进制数所对应的2~16进制字符串,单击“退出”按钮退出对话框。例8.4建立如图8.11所示的图形演示对话框。在编辑框输入绘图命令,当单击“绘图”按钮时,能在左边坐标轴绘制所对应的图形,弹出框提供色图控制,列表框提供坐标网格线和坐标边框控制。8.3可视化图形用户界面设计8.3.1图形用户界面设计窗口1.GUI设计模板在MATLAB主窗口中,选择File菜单中的New菜单项,再选择其中的GUI命令,就会显示图形用户界面的设计模板。MATLAB为GUI设计一共准备了4种模板,分别是BlankGUI(默认)、GUIwithUicontrols(带控件对象的GUI模板)、GUIwithAxesandMenu(带坐标轴与菜单的GUI模板)与ModalQuestionDialog(带模式问话对话框的GUI模板)。当用户选择不同的模板时,在GUI设计模板界面的右边就会显示出与该模板对应的GUI图形。•2.GUI设计窗口在GUI设计模板中选中一个模板,然后单击OK按钮,就会显示GUI设计窗口。选择不同的GUI设计模式时,在GUI设计窗口中显示的结果是不一样的。GUI设计窗口由菜单栏、工具栏、控件工具栏以及图形对象设计区组成。GUI设计窗口的菜单栏有File、Edit、View、Layout、Tools和Help共6个菜单项,使用其中的命令可以完成图形用户界面的设计操作。•在GUI设计窗口的工具栏上,有AlignObjects(位置调整器)、MenuEditor(菜单编辑器)、TabOrderEditor(Tab顺序编辑器)、M-fileEditor(M文件编辑器)、PropertyInspector(属性查看器)、ObjectBrowser(对象浏览器)和Run等15个命令按钮,通过它们可以方便地调用需要使用的GUI设计工具和实现有关操作。•在GUI设计窗口左边的是控件工具栏,包括PushButton、Slider、RadioButton、CheckBox、EditText、StaticText、PopupMenu、Listbox、ToggleButton、Axes等控件对象,它们是构成GUI的基本元素。•3.GUI设计窗口的基本操作为了添加控件,可以从GUI设计窗口的控件工具栏中选择一个对象,然后以拖曳方式在对象设计区建立该对象,其对象创建方式方便、简单。在GUI设计窗口创建对象后,通过双击该对象,就会显示该对象的属性查看器,通过它可以设置该对象的属性值。•在选中对象的前提下,单击鼠标右键,会弹出一个快捷菜单,可以从中选择某个子菜单进行相应的操作。在对象设计区右击鼠标,会显示与图形窗口有关的快捷菜单。8.3.2可视化设计工具MATLAB的用户界面设计工具共有5个,它们是:(1)对象属性查看器(PropertyInspector):可查看每个对象的属性值,也可修改设置对象的属性值。(2)菜单编辑器(MenuEditor):创建、设计、修改下拉式菜单和快捷菜单。(3)位置调整工具(AlignmentTool):可利用该工具左右、上下对多个对象的位置进行调整。(4)对象浏览器(ObjectBrowser):可观察当前设计阶段的各个句柄图形对象。(5)Tab顺序编辑器(TabOrderEditor):通过该工具,设置当按下键盘上的Tab键时,对象被选中的先后顺序。•例8.5利用GUI设计工具设计图8.18所示的用户界面。该界面包括一个用于显示图形的轴对象,显示的图形包括表面图、网格图或等高线图。绘制图形的功能通过3个命令按钮来实现,用户通过单击相应的按钮,即可绘制相应图形。绘制图形所需要的数据通过一个弹出框来选取。在弹出框中包括3个选项,分别对应MATLAB的数据函数peaks、membrane(该函数产生MATLAB标志)和用户自定义的绘图数据sinc,用户可以通过选择相应的选项来载入相应的绘图数据。在图形窗口默认的菜单条上添加一个菜单项Select,Select下又有两个子菜单项Yellow和Red,选中Yellow项时,图形窗口将变成黄色,选中Red项时,图形窗口将变成红色。•图8.18利用GUI设计工具设计用户界面