Download presentation
Presentation is loading. Please wait.
1
第八讲 MATLAB图形用 户界面设计
2
所谓图形用户界面是指由窗口、菜单、对话框等各种图形对象组成的用户界面。在这种用户界面下,用户的操作是通过“选择”各种图形对象来实现的。
3
一、图形窗口的控制
4
(1)菜单操作:在MATLAB命令窗口选择File菜单中的New命令,再选取Figure子菜单,这样将建立一个标准的MATLAB图形窗口;
一、图形窗口的控制 1.建立图形窗口 要建立一个图形窗口,有两种方法: (1)菜单操作:在MATLAB命令窗口选择File菜单中的New命令,再选取Figure子菜单,这样将建立一个标准的MATLAB图形窗口; (2)命令操作:使用figure函数建立一个图形窗口,并返回该窗口的句柄。调用figure函数的一般格式为: 窗口句柄=figure(属性名1,属性值1,属性名2,属性值2,…) MATLAB通过对属性的操作来改变图形窗口的形式。
5
2.图形窗口的常用属性 (1) MenuBar属性
一、图形窗口的控制 2.图形窗口的常用属性 (1) MenuBar属性 MenuBar属性的取值可以是figure(缺省值)或none。用来控制图形窗口是否应该具有菜单条。如果它的属性值为none,则表示该图形窗口没有菜单条。这时用户可以根据后面将介绍的uimenu()函数来加入自己的菜单条,如果属性值为figure,则该窗口将保持图形窗口默认的菜单条,这时也可以采用uimenu()函数在原默认的图形窗口菜单后面添加新的菜单项。
6
2.图形窗口的常用属性 (2) Name属性 (3) NumberTitle属性
一、图形窗口的控制 2.图形窗口的常用属性 (2) Name属性 Name属性的取值可以是任何字符串,它的缺省值为空。这个字符串作为图形窗口的标题。一般情况下,其标题形式为:Figure No.1:字符串。 (3) NumberTitle属性 NumberTitle属性的取值是on(缺省值)或off。决定着在图形窗口的标题中是否以“Figure No.n:”为标题前缀,这里n是图形窗口的序号,即句柄值。
7
一、图形窗口的控制 【例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.'')');
8
set(窗口句柄,属性名1,属性值1,属性名2,属性值2,…) (2) 获取句柄信息函数get 调用格式为: V=get(句柄名,属性名)
一、图形窗口的控制 3.图形窗口控制函数 (1) 设置图形窗口属性函数set set函数的调用格式为: set(窗口句柄,属性名1,属性值1,属性名2,属性值2,…) (2) 获取句柄信息函数get 调用格式为: V=get(句柄名,属性名) 其中V是返回的属性值。
9
二、菜单设计
10
二、菜单设计 MATLAB的各个图形窗口有自己的菜单栏,包括File、Edit、Windows和Help等菜单项。为了建立用户自己的菜单系统,可以先将图形窗口的MenuBar属性事先设置为none,以取消图形窗口缺省的菜单,然后再建立用户自己的菜单。
11
要建立用户菜单可用uimenu函数,因其调用方法不同,该函数可以用于建立菜单条中的菜单项和子菜单中的菜单项。建立菜单条的函数调用形式为:
二、菜单设计 1.建立用户菜单 要建立用户菜单可用uimenu函数,因其调用方法不同,该函数可以用于建立菜单条中的菜单项和子菜单中的菜单项。建立菜单条的函数调用形式为: 菜单项句柄=uimenu(图形窗口句柄,属性名1,属性值1,属性名2,属性值2,…) 建立子菜单的函数调用形式为: 子菜单句柄=uimenu(父菜单句柄,属性名1,属性值1,属性名2,属性值2,…)
12
Tag属性的取值是字符串,它定义了该菜单对象的一个标识值。定义了Tag属性后,在任何程序中都可以通过这个标识值找出该菜单对象。
二、菜单设计 2.菜单对象常用属性 (1) Tag属性 Tag属性的取值是字符串,它定义了该菜单对象的一个标识值。定义了Tag属性后,在任何程序中都可以通过这个标识值找出该菜单对象。 (2) Type属性 Type属的取值总是uimenu,这个属性值标明图形对象的类型。对菜单对象,其类型就是uimenu,用户不能改写这个属性。 (3) UserData属性 UserData属性的取值是一个矩阵,缺省值为空矩阵,用户可以在这个属性中保存与该菜单对象相关的重要数据或信息,借此可以达到传递数据或信息的目的。可以用set和get函数访问该属性。
13
二、菜单设计 【例2】 建立一个菜单系统。 菜单条中含有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菜单设置成可选状态。
14
程序如下: 二、菜单设计 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'')']);
15
三、对话框设计
16
1.对话框的组成 1. 按钮(Push Button) 2. 单选按钮(Radio Button) 3. 复选框(Check Box)
三、对话框设计 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)
17
MATLAB提供了用于建立控制对象的函数uicontrol,其调用格式为:
三、对话框设计 2. 对话框的设计 1). 建立控制对象 MATLAB提供了用于建立控制对象的函数uicontrol,其调用格式为: 对象句柄=uicontrol(窗口句柄,属性名1,属性值1,属性名2,属性值2,…) 2). 控制对象的属性
18
三、对话框设计 【例3】 建立一个对话框。 在该对话框上分别建立静态文本显示Input Box和Output Box。它们的下方各有一个修饰用边框,左边边框内加入了3个单选按钮和一个编辑框,用于确定Y的值,右边边框有一个静态文本,用于显示Y的值。最后在该对话框中加入了两个按钮Get Y和Cancel,若按下了Get Y按钮,则将执行Scom回调命令,在右边边框的静态文本中显示左边边框所确定的Y值,若选择了Cancel按钮,则将关闭此对话框。
Similar presentations