图形用户界面(Graphical User Interface,GUI) 是指由窗口、菜单、光标、按键、对话框和文本等各种图形对象组成的用户界面,用来定制用户与Matlab 的交互方式(命令窗口不是用户唯一与Matlab 的交互方式)。使用图形用户界面,用户可以方便地通过鼠标等输入设备与程序进行信息交换,控制程序运行。
在matlab 中,基本的图形用户界面对象包含3 类:
1. 用户界面控件对象( uicontrol) )
2.下拉式菜单对象( uimenu )
3.快捷菜单对象( uicontextmenu
MATLAB 提供了两种创建图形用户界面的方法: 编程创建 GUI 的方法 和通过 GUI 向导 创建的方法。用户可以根据需要,选择适当的方法创建图形用户接口。
GUI 向导 即 GUIDE ,Graphical User Interface development environment ,包含了大量创建 GUI 的工具,这些工具简化了创建 GUI 的过程。通过向导创建 GUI 直观、简单,便于用户快速开始 GUI 创建。
菜单设计
Matlab 用户菜单对象是图形窗口的子对象,所以菜单设计总在某一个图形窗口中进行。Matlab 的图形窗口有自己的菜单栏,为了建立用户自己的菜单系统, 可以先将图形窗口的menubar属性设置为none ,以取消图形窗口默认的菜单,然后再建立用户自己的菜单。
取消默认菜单:figure(‘menubar’,‘none’)
建立用户菜单
用户菜单通常包括一级菜单( 菜单条) 和二级菜单,有时还需要继续建立下级菜单如三级菜单等。而每一级菜单又包括若干菜单项。
要建立用户菜单可用uimenu 函数,该函数可以用于建立一级菜单项和子菜单项。根据不同的调用格式可以创建一级菜单项和子菜单项。
建立一级菜单函数调用格式:一级菜单项句柄=uimenu( 图形窗口句柄 ,属性名
1 ,属性值1 ,属性名2 ,属性值2 ,…)
建立子菜单项函数调用格式:子菜单项句柄=uimenu( 一级菜单项句柄 ,属性名
1 ,属性值1 ,属性名2 ,属性值2 ,…)
菜单对象常用属性
菜单对象具有 Children 、 Parent 、 Tag 、 Type 、UserData 、 Visible 等公共属性。
(1) Children 属性。该属性的取值是该对象所有子对象的句柄组成的一个向量。
(2) Color 属性。该属性的取值是一个颜色值,既可以用字符表示,也可以用 RGB 三元组表示。
(3) Parent 属性。该属性的取值是该对象的父对象的句柄。
(4) Tag 属性。该属性的取值是一个字符串,它相当于给该对象定义了一个标签。定义了 Tag 属性后,在任何程序中都可以通过 findobj 函数获取该标签所对应图形对象的句柄。例如, hf =findobj(0,‘Tag’,‘Flag1’) 将在屏幕对象及其子对象中寻找Tag 属性为 Flag1 的对象,并返回句柄。
(5) Type 属性。表示该对象的类型,该属性的值是只读的。
(6 ) UserData 属性。该属性的取值是一个矩阵,默认值为空矩阵。在程序设计中,可以将一个与图形对象有关的比较重要的数据存储在这个属性中,借此可以
达到传递数据的目的。具体做法是,先用 set 函数给某一句柄添加一些附加数据(一个矩阵),如果想使用这样的矩阵,再用 get 函数调用出来。
(7 ) Visible 属性。该属性的取值是 on (默认值)或off,决定着图形对象是否在图形窗口中显示出来。
快捷菜单
快捷菜单是用鼠标右键单击某对象时在屏幕上弹出的菜单。这种菜单出现的位置是不固定的,而且总是和某个图形对象相联系。在MATLAB 中,可以使用
uicontextmenu函 函 数建 立快捷菜单,具体步骤为:
(1) 利用uicontextmenu 函数建立快捷菜单。
(2) 利用uimenu 函数为快捷菜单建立菜单项。
(3) 利用set函数将该快捷菜单和某图形对象联系起来。