gui图形用户界面入门(5)

上传人:第*** 文档编号:34245992 上传时间:2018-02-22 格式:DOC 页数:9 大小:86KB
返回 下载 相关 举报
gui图形用户界面入门(5)_第1页
第1页 / 共9页
gui图形用户界面入门(5)_第2页
第2页 / 共9页
gui图形用户界面入门(5)_第3页
第3页 / 共9页
gui图形用户界面入门(5)_第4页
第4页 / 共9页
gui图形用户界面入门(5)_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《gui图形用户界面入门(5)》由会员分享,可在线阅读,更多相关《gui图形用户界面入门(5)(9页珍藏版)》请在金锄头文库上搜索。

1、GUI图形用户界面入门(5) 用户界面是人,即用户与计算机或计算机程序的接触点或交互方式,是用户与计算机进行信息交流的方式。计算机在屏幕显示图形和文本,若有扬声器还可产生声音。用户通过输入设备,如:键盘、鼠标、跟踪球、绘制板或麦克风,与计算机通讯。用户界面设定了如何观看和如何感知计算机、操作系统或应用程序。通常,多是根据悦目的结构和用户界面功能的有效性来选择计算机或程序。图形用户界面或GUI 是包含图形对象,如:窗口、图标、菜单和文本的用户界面。以某种方式选择或激活这些对象,通常引起动作或发生变化。最常见的激活方法是用鼠标或其它点击设备去控制屏幕上的鼠标指针的运动。按下鼠标按钮,标志着对象的选

2、择或其它动作。与上一章讨论MATLAB句柄图形功能的相同方式,它让用户按规定设计 MATLAB显示信息的方法,本章所描述的图形用户界面的功能,它让用户定制用户与MATLAB 的交互方式。命令窗口不是唯一与MATLAB的交互方式。本章将说明图形句柄uicontrol 和uimenu对象的使用,把图形界面加到 MATLAB的函数和M文件。 uimenu对象能在图形窗口中产生下拉式菜单和子菜单。 uicontrol对象能建立如按钮,滚动条,弹出式菜单以及文本框等对象。MATLAB在demo命令中包含了GUI功能的极好例子。 demo研究该命令,以了解uimenu 和 uicontrol如何给MATL

3、AB函数提供交互输入。21.1 谁创建图形界面GUI?为什么?在运行了demo例子后,很可能会问“为什么要在MATLAB中建立一个GUI ?”这是一个很好的问题,简单的回答是可能并不需要使用MATLAB 来分析数据,求解问题,绘制结果的绝大多数的人,并不会发现GUI工具很有用。但另一方面,GUI 可以在MATLAB中生成非常有效的工具和应用程序,或是建立演示工作的交互式界面。生成用户图形界面的最常见的理由: 编写一个需多次反复使用的实用函数,菜单、按钮、文本框作为输入方法具有意义;或 编写函数或开发应用程序供别人使用;或 创建一个过程、技术或分析方法的交互式示例;或 认为GUI的简洁,性能良好

4、,并且想实践一下。许多基于GUI的工具函数包含在精通MATLAB工具箱中,将在后续章节进行讨论。其它由MATLAB用户编制的工具和实用程序装入MATLAB的GUI 函数。工具的大多数可在Mathworks 匿名FTP节点和其它资源中获得。在我们开始讨论之前,记住对“句柄图形”的理解是设计和实现GUI的先决条件,如果你跳过了前一章,现在应重新回去阅读。21.2 GUI对象层次结构正如我们在上一章所展示的那样,由图形命令生成的每一事物是一个图形对象。图形对象不仅包括uimenu 和uicontrol 对象,而且还包括图形、坐标轴 和他们的子对象。让我们从另一个角度来看这一层次结构。计算机的屏幕本身

5、是根结点,图形是根对象的子对象,坐标轴,uimenu ,uicontrol是图形的子对象。根可以包括多个图形,每个图形含有一组或多组坐标轴以及其子对象,每个图形也可以有一个或多个与坐标轴无关的uimenu和uicontrol 。虽然uicontrol对象无子对象结点,但他们确实具有多种类型。uimenu 对象常将其它的 uimenu对象作为其子对象。兄兄兄兄兄UimenuUicontrol兄:兄兄兄兄兄兄兄兄兄兄 uimenuuimenu兄兄兄兄 兄图21.1 GUI对象层次结构图运行MATLAB的不同型号的计算机或平台上,产生不同的图形显示。 Unix工作站使用不同的X Window系统,具

6、有几个窗口程序,如mwn 或twm 以控制显示的布局。PC机靠Microsoft Windows或Windows NT进行窗口管理,Macintosh计算机用 Macintosh工具箱程序作窗口。虽然在各种平台上,显示看起来有很大的不同,但在很多的情况下,句柄图形的编码是一致的。MATLAB在内部处理平台和窗口系统的差别。体现句柄图形例程的函数,包括应用 uimenu和uicontrol对象的函数,通常运行在所有平台。存在已知差异的地方将在本章后面给出。21.3 菜单在每一个窗口系统中使用菜单让用户选择命令和选项。通常在显示屏或窗口的顶部有一菜单条。移动鼠标指针到菜单标志上按下鼠标按键,顶层菜

7、单就被选中,一列菜单项就从菜单标志拉下来。这种款式菜单就叫下拉式菜单。按下鼠标将指针移动至菜单项并松开鼠标,则完成菜单项的选择。MS-Windows 和一些X Window系统平台还提供另一种选择菜单的方法。在顶层菜单上按下并松开鼠标,或称单击鼠标,则打开下拉菜单。然后,移动鼠标指针至下拉菜单项再次单击鼠标,就选择菜单项。在下拉菜单中选择一项就引起动作的发生。一个菜单项还可用自己的菜单项列表而作为子菜单。子菜单项在子菜单的标志右边显示小三角或箭头以表示菜单还有更多子菜单项可供选择。如果子菜单的菜单项被选择,另一个具有更多菜单项的菜单显示在此菜单的右边的下拉菜单中。有时这种菜单称之行走菜单。选中

8、其中一个菜单项也引起某些动作的产生。子菜单可以嵌套,但层次的数目受到窗口系统及有用资源的限制。菜单的布置Macintosh在显示屏的顶部使用包含下拉菜单标题的菜单条。选择图形窗口时,菜单条变化以反映激活的图形窗中可利用的选项。标准的Macintosh菜单标题包括 Apple、 File、 Edit、 Window 和Help 或Balloon Help。由uimenu所加的菜单标题放在 Window和Help之间。如果想从菜单条中删去File、 Edit、和 Window菜单标题,可以使用Set命令。 set(Hf_fig1, Menubar , none )Apple和Help不可从菜单条中

9、删除。同样,标准的菜单是用以下的命令恢复: set(Hf_fig1, Menubar , figure )在Microsoft窗口系统下,菜单条位于图形窗口的顶部。每个图形窗口有自己的菜单条,它包含File,Edit ,Window 和Help标题。由uimenu所加的菜单标题放在 Help之后。可以使用与上面相同的Set 命令从菜单条中删去或恢复所有的标准菜单。在X Window系统工作站上没有MATLAB标准图形窗口菜单的标题。窗口管理器可将菜单条放置在屏幕上每一个窗口上端,但这些菜单条与MATLAB 菜单无关。当建立第一个 uimenu对象时,MATLAB 在图形窗口的顶部边缘生成自己的

10、菜单条。建立菜单和子菜单我们采用函数uimenu 建立菜单项。 uimenu的句法与其他对象创建函数相似。如, Hm_1=uimenu(Hx_parent, PropertyName ,PropertyValue,.)其中Hm_1是由uimenu生成的菜单项的句柄,通过设定uimenu对象的属性值 PropertyName ,PropertyValue 这对命令定义了菜单特性; Hx_parent是缺省的父辈对象的句柄,必须是图形和uimenu 对象。uimenu对象中最重要的属性是 Label 和 Callback 。 Label 属性值是菜单条和下拉菜单项上的文本字符串,以确认菜单项。 C

11、allback 属性值是MATLAB字符串,当选中菜单项时,它传给eval,用以执行。菜单举例下面的例子用函数uimenu 将简单菜单加到当前的 图形窗口中。这里提出的例子说明如何只用几个MATLAB命令来建立工作菜单。后面的例子将详细地讨论 uimenu的命令和属性。下例用两个下拉菜单将菜单条加到当前窗口中。首先,建立名为Example 的顶部菜单输入。 Hm_ex=uimenu(gcf, Label , Example ) ;在此菜单下有两个菜单项。第一项标志为Grid,切换坐标轴格栅的状态。 Hm_exgrid=uimenu(Hm_ex, Label , Grid , Callback

12、, Grid );注意,句柄Hm_ex是用于与上层菜单相关联的。这项uimenu按eval的要求出现在上层菜单之下。还需注意的是属性 Callback 的值,它是一个带引号的字符串。Example下的第二项标志为View,并带有子菜单。 Hm_exview=uimenu(Hm_ex, Label , View );View菜单有两项选择2-D和3-D视图。 Hm_ex2d=uimenu(Hm_exview, Label , 2-D , Callback , view(2) ); Hm_ex3d=uimenu(Hm_exview, Label , 3-D , Callback , View(3)

13、 );注意以上这些是View的子菜单,因为它们指定Hm_exview 作为其父对象。现在,将第二个顶层菜单加到标题为Close的菜单条中。 Hm_ex=uimenu(gcf, Label , Close );由该顶层菜单Close加入了两个菜单项。第一项关闭图形窗口,第二项使图形窗口打开,但去掉用户菜单。 Hm_clfig=uimenu(Hm_close, Label , Close Figure , Callback , Close ); Hm_clmenu=uimenu(Hm_close, Label , Remove Menu ,. Callback , delete(Hm_ex) ;

14、delete(Hm_ex); drawnow );在精通MATLAB工具箱的脚本文件mmenu1.m 中含有上面的例子。所以你可以运行mmenu1.m来验证上例。菜单属性如上所示,同句柄图形函数一样,在建立图形对象时可定义uimenu属性,或用set 改变属性。所有可设定的属性,包括标题、菜单颜色、甚至回调字符串都可以用set来改变。这种功能十分便于迅速地定制菜单和属性。表21.1列出了MATLAB 4.2版本中的uimenu对象的属性及其属性值。带有*的属性是非文件式的,使用时需加小心。在括号内的属性值是缺省值。表21.1Uimenu 对象的属性Accelerator 指定菜单项等价的按键或

15、快捷键。对于X-windows,按键顺序是Control- 字符;Macintosh系统,按键顺序是Command - 字符或# - 字符BackgroundColor uimenu背景色 ,是一个3元素的 RGB向量或MATLAB预先定义的颜色名称。缺省的背景色是亮灰色Callback MATLAB回调字符串,选择菜单项时,回调串传给函数eval;初始值为空矩阵Checkedon:off:被选项的校验标记校验标记出现在所选项的旁边校验标记不显示Enableon:off:菜单使能状态菜单项使能。选择菜单项能将Callback 字符串传给eval菜单项不使能,菜单标志变灰。选择菜单项不起任何作用。ForegroundColor uimenu前景(文本)色 ,是一个三元素的 RGB向量或MATLAB预先定义的颜色名称。缺省的前景色是黑色Label 含有菜单项标志的文本串。在PC系统中,标记中前面有 & ,定义了快捷键,它由Alt - 字符激活Position uimenu对象的相对位置。顶层菜单从左到右编号,子菜单从上至下编号Separatoron:off:分割符 - 线模式分割线在菜单项之上不画分割线*Visibleon:off:uimenu对象的可视性uimenu对象在屏幕上可见uim

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号