第八讲 MATLAB图形用户界面设计所谓图形用户界面是指由窗口,菜单,对话框等各种图形对象组成的用户界面 。 在这种用户界面下,用户的操作是通过,选择,各种图形对象来实现的 。
一,图形窗口的控制一,图形窗口的控制
1.建立图形窗口要建立一个图形窗口,有两种方法:
(1)菜单操作:在 MATLAB命令窗口选择 File菜单中的 New命令,再选取 Figure子菜单,这样将建立一个标准的 MATLAB图形窗口;
(2) 命令操作:使用 figure 函数建立一个图形窗口,
并返回该窗口的句柄 。 调用 figure函数的一般格式为:
窗口句柄 =figure(属性名 1,属性值 1,属性名 2,属性值 2,…)
MATLAB通过对属性的操作来改变图形窗口的形式 。
2.图形窗口的常用属性
(1) MenuBar属性
MenuBar属性的取值可以是 figure(缺省值 )或 none。 用来控制图形窗口是否应该具有菜单条 。 如果它的属性值为 none,则表示该图形窗口没有菜单条 。 这时用户可以根据后面将介绍的 uimenu()函数来加入自己的菜单条,
如果属性值为 figure,则该窗口将保持图形窗口默认的菜单条,这时也可以采用 uimenu()函数在原默认的图形窗口菜单后面添加新的菜单项 。
一,图形窗口的控制
(2) Name属性
Name属性的取值可以是任何字符串,它的缺省值为空 。
这个字符串作为图形窗口的标题 。 一般情况下,其标题形式为,Figure No.1:字符串 。
2.图形窗口的常用属性一,图形窗口的控制
(3) NumberTitle属性
NumberTitle属性的取值是 on(缺省值 )或 off 。 决定着在图形窗口的标题中是否以,Figure No.n:”为标题前缀,这里
n是图形窗口的序号,即句柄值。
【 例 1】 建立一个图形窗口 。 该图形窗口起始于屏幕左下角,宽度和高度分别为 300像素点和 150
像素点,背景颜色为绿色,且当用户从键盘按下任意一个键时,将显示,Hello,Keyboard Key
Pressed.” 字样 。
一,图形窗口的控制程序为,hf=figure('Color',[0,1,0],'Position',[1,1,300,150],...
'Name','图形窗口示例
','NumberTitle','off','MenuBar','none',...
'KeyPressFcn','disp(''Hello,Keyboard Key Pressed.'')');
3.图形窗口控制函数
( 1) 设置图形窗口属性函数 set
set函数的调用格式为:
set(窗口句柄,属性名 1,属性值 1,属性名 2,
属性值 2,…)
( 2) 获取句柄信息函数 get
调用格式为:
V=get(句柄名,属性名 )
其中 V是返回的属性值 。
一,图形窗口的控制二、菜单设计
MATLAB的各个图形窗口有自己的菜单栏,包括 File,Edit,Windows和 Help等菜单项 。 为了建立用户自己的菜单系统,可以先将图形窗口的 MenuBar属性事先设置为
none,以取消图形窗口缺省的菜单,然后再建立用户自己的菜单 。
二,菜单设计
1.建立用户菜单要建立用户菜单可用 uimenu函数,因其调用方法不同,该函数可以用于建立菜单条中的菜单项和子菜单中的菜单项 。 建立菜单条的函数调用形式为:
菜单项句柄 =uimenu(图形窗口句柄,属性名 1,
属性值 1,属性名 2,属性值 2,…)
建立子菜单的函数调用形式为:
子菜单句柄 =uimenu(父菜单句柄,属性名 1,
属性值 1,属性名 2,属性值 2,…)
二,菜单设计
2.菜单对象常用属性
( 1) Tag属性
Tag属性的取值是字符串,它定义了该菜单对象的一个标识值 。 定义了 Tag属性后,在任何程序中都可以通过这个标识值找出该菜单对象 。
( 2) Type属性
Type属的取值总是 uimenu,这个属性值标明图形对象的类型 。 对菜单对象,其类型就是 uimenu,用户不能改写这个属性 。
( 3) UserData属性
UserData属性的取值是一个矩阵,缺省值为空矩阵,用户可以在这个属性中保存与该菜单对象相关的重要数据或信息,借此可以达到传递数据或信息的目的 。 可以用 set和 get函数访问该属性 。
二,菜单设计菜单条中含有 File和 Help两个菜单项 。 如果选择 File中的 New
选项,则将显示 New Item字样,如果选择 File中的 Open选项,
则将显示出 Open Item字样 。 File中的 Save菜单项初始时处于禁选状态,在选择 Help选项之后将此菜单项恢复成可选状态,如果选择 File中的 Save选项,则将出现一个新的菜单 (三级菜单 ),
其中共有两个子菜单项 Text file和 Graphics file,如果选择第 1项,
则将变量 k1和 k2分别赋为 0和 1,然后调用 file01.m文件来进行相应的处理 (该文件需要另行编写 ),如果选择第 2项,则将变量 k1和 k2分别赋为 1和 0,然后调用 file10.m文件来进行相应的处理 (该文件也需要另行编写 )。 如果选择 File中的 Save As选项,
则将显示 Save As Item字样 。 如果选择 File中的 Exit选项,则将关闭当前窗口 。 如果选择 Help中 About … 选项,则将显示 Help
Item字样,并将 Save 菜单设置成可选状态 。
【 例 2】 建立一个菜单系统。
二,菜单设计程序如下:
screen=get(0,'ScreenSize');
W=screen(3);H=screen(4);
hf=figure('Color',[1,1,1],'Position',[1,1,0.4*W,0.3*H],...
'Name','菜单设计示例一 ','NumberTitle','off','MenuBar','none');
hfile=uimenu(hf,'label','&File');
hhelp=uimenu(hf,'label','&Help');
uimenu(hfile,'label','&New','call','disp(''New Item'')');
uimenu(hfile,'label','&Open','call','disp(''Open Item'')');
hsave=uimenu(hfile,'label','&Save','Enable','off');
uimenu(hsave,'label','Text file','call','k1=0;k2=1;file01;');
uimenu(hsave,'label','Graphics file','call','k1=1;k2=0;file10;');
uimenu(hfile,'label','Save &As','call','disp(''Save As Item'')');
uimenu(hfile,'label','&Exit','separator','on','call','close(hf)');
uimenu(hhelp,'label','About,..','call',...
['disp(''Help Item'');','set(hsave,''Enable'',''on'')']);
二,菜单设计三、对话框设计
1.对话框的组成
1,按钮 (Push Button)
2,单选按钮 (Radio Button)
3,复选框 (Check Box)
4,列表框 (List Box)
5,弹出式列表框 (Popup List Box)
6,编辑框 (Edit Box)
7,滑动条 (Slider)
8,静态文本 (Static Text)
9,边框 (Frame)
三,对话框设计
2,对话框的设计
1),建立控制对象
MATLAB提供了用于建立控制对象的函数
uicontrol,其调用格式为:
对象句柄 =uicontrol(窗口句柄,属性名 1,
属性值 1,属性名 2,属性值 2,…)
2),控制对象的属性三,对话框设计
【 例 3】 建立一个对话框 。
三,对话框设计在该对话框上分别建立静态文本显示 Input Box和 Output
Box。 它们的下方各有一个修饰用边框,左边边框内加入了 3个单选按钮和一个编辑框,用于确定 Y的值,右边边框有一个静态文本,用于显示 Y的值 。 最后在该对话框中加入了两个按钮 Get Y和 Cancel,若按下了 Get Y按钮,则将执行 Scom回调命令,在右边边框的静态文本中显示左边边框所确定的 Y值,若选择了 Cancel按钮,则将关闭此对话框 。