资源描述:
《图形用户界(GUI)设计举例.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、图形用户界面(GUI)设计举例Tags:MATLABMATLAB 图形用户界面图形用户界面 GUIGUI 设计举例设计举例 Time : 2005-2-2118:25:39
2、 Views : 756
3、 FontSize : Large Medium Small
4、 Category : 毕业设计,留底回忆 前面我们已经大概的了解了MATLAB环境下的图形用户界面(GUI)设计,下面便通过具体的例子来演示在MATLAB环境下图形用户界面设计的方法与思想。 MATLAB的图形用户界面设计实际上是一种面向对象的设计方法。假设想建立一个图形界面来显
5、示和处理二维图形的颜色、线型及数据点的图标。要求其基本功能是: (1)建立一个主坐标系,用来显示要绘制的二维图形; (2)建立一个列表框,允许用户选择不同的着色方法; (3)建立一组按扭,用于处理二维图形线型和数据点的图标; (4)为图形界面加入菜单项,用于决定坐标轴是否显示及坐标轴上是否需要网格; (A)最初图形界面的设想如下图所示: (B)根据上面的设想,下面我们就来制作它的图形用户界面: 首先,我们先来看其图形窗口的设置。在MATLAB命令窗口中选择菜单可获得一个标准MATLAB的图形窗口,但我们可采用如下命令使得打开窗口的形式更富于变化: 窗
6、口句柄=figure(属性1,属性值1,属性2,属性值2,……);通过这样的方式可以很容易地打开一个新的图形窗口,并返回该窗口的句柄,以后我们可以方便地对它进行进一步修正,窗口的属性诸如颜色(Color),标题名(Name)、位置(Position)等,都可根据需要设定。若要改变窗口的某些属性,则可通过调set()函数来完成。这样我们就得到其窗口生成的程序如下:yWin=figure('Position',[100,100,410,310],'Name','对MATLAB绘图功能选项的演示(2003/3/21)','Menubar','none','Resize','
7、off','pointer','custom','numbertitle','off'); 接下来我们看起菜单项的加入。我们已建立了一个图形窗口,下面给它加入菜单项。 菜单设置是由uimenu()函数来完成的,该函数调用格式为: 菜单项句柄=uimenu(窗口句柄,属性1,属性值1,属性2,属性值2,……); 还可在某一个菜单条下定义一个新的子菜单条: 子菜单句柄=uimenu(菜单项句柄,属性1,属性值1,属性2,属性值2,……); uimenu()函数的属性最基本的有: 提示名称(Label):可以是任意一个字符串,在菜单项提示的字符串中允许使用下划
8、线&标志,这样可用键盘容易地激活相应的菜单项。 回调函数(Call):可以是一个函数名称(用引号括起),也可以是一组MATLAB命令。在该菜单条被选中后,MATLAB自动调用此回调函数来做出菜单项的响应,实现某一功能。在产生下拉菜单时“call”选项可省略,因为这时可以直接打开下一级菜单,而不是侧重对某一函数进行响应。其菜单项生成的程序如下:ymenu001=uimenu(yWin,'label','Grid');ymenu0011=uimenu(ymenu001,'label','Gridon','callback','Gridon');ymenu0011=uim
9、enu(ymenu001,'label','Gridoff','callback','Gridoff');ymenu002=uimenu(yWin,'label','Axes');ymenu0021=uimenu(ymenu002,'label','Axeson','callback','set(gca,''visible'',''on'')');ymenu0021=uimenu(ymenu002,'label','Axesoff','callback','set(gca,''visible'',''off'')'); 其次我们再来设定其控件设计技术。MATLAB提
10、供uicontrol命令来实现控件设计。在图形窗口或对话框窗口上的各种控件均可以由该命令实现。用Chandle=uicontrol(窗口句柄,‘属性名’,属性值设置,……); 设置的属性值在窗口句柄所指的窗口中实现一个控件。其程序如下:CBox=uicontrol(yWin,'style','listbox','Position',[15,240,80,45],'String','red
11、blue
12、black
13、bronze
14、mauve
15、yellow
16、green','Callback',['Colornum=get(CBox,''value'');'