180 likes | 350 Views
第八讲 MATLAB 图形用 户界面设计. 所谓图形用户界面是指由窗口、菜单、对话框等各种图形对象组成的用户界面。在这种用户界面下,用户的操作是通过 “ 选择 ” 各种图形对象来实现的。. 一、 图形窗口的控制. 一、 图形窗口的控制. 1. 建立图形窗口 要建立一个图形窗口,有两种方法: (1) 菜单操作:在 MATLAB 命令窗口选择 File 菜单中的 New 命令,再选取 Figure 子菜单,这样将建立一个标准的 MATLAB 图形窗口;.
E N D
第八讲 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.图形窗口的常用属性 (2) Name属性 Name属性的取值可以是任何字符串,它的缺省值为空。这个字符串作为图形窗口的标题。一般情况下,其标题形式为:Figure No.1:字符串。 (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函数访问该属性。
二、菜单设计 【例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菜单设置成可选状态。
二、菜单设计 程序如下: 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按钮,则将关闭此对话框。