图形用户界面开发技术

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第1卷第1期2002年3月 江南大学学报(自然科学版)Journal of Southern Yangtze U niversity(N atural Science Edition)
Vol.1 No.1
Mar. 2002 
文章编号:1008-8547(2002)01-0038-04 收稿日期:2001-11-21; 修订日期:2001-12-30.
作者简介:朱雪峰(1974-),男,河南雎县人,计算机应用硕士研究生.
UN IX 平台基于Motif 环境的
图形用户界面开发技术
朱雪峰, 顾耀林, 曹莹
(江南大学信息工程学院,江苏无锡214036)
摘 要:通过对UN IX 系统图形用户界面开发技术的研究,提出了GU I 的体系结构,并在此基础上进行了开发层次和面向对象技术的分析,最后对UN IX 系统图形用户界面开发中的图形演示技
术给出了详尽的实现方法.
关键词:图形演示;图形上下文;图形用户界面中图分类号:TP 391.41文献标识码:A
Study of G raphical User Interface Development T echnique B ased
on Motif in UNIX
ZHU Xue 2feng , GU Yao 2lin , CAO Y ing
(School of Information Technology ,S outhern Y angtze University ,Wuxi 214036,China )
Abstract :Based on the study of graphical user interface development technique on UN IX ,a three 2layer GU I structure is presented ,and development hierarchy and Object 2Orient technique based on this structure is analyzed ,In the end ,further purpose realizing method of graphics rendering technology in the development of graphical user interface in UN IX are showed in this paper.K ey w ords :graphics rendering ;graphics context ;graphical user interface
计算机人机界面HCI 的发展经历了以下几个
阶段:即从原始的操纵板界面过渡到字符界面,再发展到现在的图形用户界面GU I ,最终必然会过渡到三维虚拟现实VR 用户界面.图形用户界面的出现,是计算机发展进程中的一个重要阶段.它使用户界面向方便、友好和一致性的方向迈出了一大步.同时它掩盖了计算机操作的复杂性,使人机交互变得更加直观、简单、易于学习和掌握,从而为计算机的进一步普及开辟了道路.
目前,微机Windows 平台上的GU I 开发工具
已经很多.但是开发GU I 决不仅限于Windows 平台,在小型机、工作站、甚至某些高档微机上,UN IX 仍占明显优势.UN IX 下的GU I 开发工具主要有两种:OSF 的Motif 和U I 的Open Look.这两种不同的开发工具,无论在编程风格还是在界面风格上都有较大的不同.从图形用户界面开发角度进行分析,虽然这两种组件集并没有本质的差别,但就程序开发的灵活性、工具箱的统一性以及国际化支持
方面,Motif要明显优于Open Look(仅在图像处理方面Motif不及Open Look).因此,作者主要研究采用Motif的UN IX系统图形用户界面开发技术.
1 图形用户界面
1.1 体系结构
目前最具代表性的用户界面模型理论为See2 heim模型,它将系统分为表示、对话控制和应用程序界面模型三部分[1].其它基于Seeheim模型的面向对象的用户界面模型有:基于交互技术的模型、基于窗口的模型、组合式模型[2].本文从用户界面开发的角度,提出了图形用户界面的显示模型、窗口模型和应用模型3层模型体系结构,即DWA体系结构.
图形用户界面是建立在硬件和操作系统之上的人机交互界面,从下至上由显示、窗口和应用模型构成.其中,显示模型决定图形在屏幕上的显示方式,窗口模型确定窗口在屏幕上的操作方式,应用模型则是构造用户界面的工具.
图形用户界面应用程序接口是由相应的显示、窗口和应用模型所提供的接口共同组成的.它依照图形用户界面的风格,可以开发出具有共同风格特征、相同交互方式的应用程序.UN IX系统下的图形用户界面应用程序接口由Xlib库、Xt Intrinsics库及Motif Toolkit库共同组成.
1.2 Motif界面系统
Motif是开放软件基金会OSF推出的图形用户界面系统,它融合了多种图形用户界面的优点,以X 系统为基础,是计算机图形用户界面风格的最主要流派,现已成为工作站图形用户界面事实上的工业标准.OSF/Motif包括4个方面的内容:风格指南文档、窗口管理程序MWM、Motif工具箱和用户界面语言U IL.
2 UN IX系统图形用户界面开发技术
2.1 UNIX系统界面开发的三层策略
2.1.1 面向底层的开发策略
和图形用户界面3层模型体系结构中的显示模型与窗口模型相对应,图形用户界面提供了相应的应用程序接口,即在UN IX系统下直接调用Xlib 库函数及Xt Intrinsics库函数,这是系统提供的底层低级应用程序接口.
Xlib是UN IX系统提供的低级应用程序接口,它提供了X客户程序所需要的最原始的功能.Xt Intrinsics建立在Xlib基础上,提供X库函数的模块化调用,从而降低程序直接使用Xlib的复杂程度.
面向底层的应用程序接口是一种底层库,用它来编写图形和交互界面虽然较灵活,却也较繁琐,代码复用率低,工作量较大,并且开发时要求熟悉大量的底层库函数,对软件工作者的要求比较高,难度较大.
2.1.2 面向中层的开发策略
与应用模型相对应,图形用户界面提供了相应的应用程序接口,这是系统提供的面向对象的高级编程接口,在UN IX系统下它由Motif Toolkit组成.Motif Toolkit建立在Xlib和Xt Intrinsics的基础上,主要包括组件集合和便利函数,其目的是提供更高层的界面和一套更全面的组件,并给出统一应用的基本风格,进一步提高应用程序的开发效率.
面向中层开发的基本特点是:由于它是建立在底层开发库基础上的面向对象的函数库,因此可以提高程序的开发效率.其开发的难度适中,较底层开发为易.
2.1.3 面向顶层的开发策略
在图形用户界面3层模型体系结构及面向底层、中层开发策略的基础上,综合形式化界面自动生成技术、图形化编程技术、CASE技术、原型技术、模糊技术和智能技术,就可以得到图形用户界面开发的第三种策略,即面向顶层的开发策略.在UN IX 系统下,可以提供的面向顶层界面的开发工具比较少,即使有也是专用化且价格十分昂贵,比如美国V ISIX公司的G alaxy系统.
2.2 UNIX系统GUI开发中的面向对象方法
GU I的开发在整个软件系统的开发中占相当大的比例,提高GU I开发效率是人们为之奋斗的目标,面向对象方法为从根本上提高GU I的开发效率带来了新的生机.其主要途径有:掌握面向对象的界面设计,在现有的技术支持下尽可能提高应用程序的对象化程度;研制面向对象的GU I开发系统及界面描述语言;以现有的GU I开发系统为基础,为常用的界面开发成分开发符合OO规则的界面类,建立界面类库;提供相应的用户界面辅助生成工具.
界面设计中面向对象方法包含5个重要因素,即抽象、封装、继承、多态性和层次化.①抽象:Motif 组件集中,抽象的基本单位就是一个Widget,它包括该类中所有组件所共有的一套过程和数据结构.而组件类的实例Widget对象则包含它自己所特有的过程和数据结构,同时还包括一个指向其所属类
93
第1期朱雪峰等:UN IX平台基于Motif环境的图形用户界面开发技术
别的指针.②封装:Motif组件集中的每个Widget 都是封装起来对外提供相应调用接口的模块,每个组件都有自己的资源和相应的资源管理函数.③继承:继承是Widget集实现的核心,Widget集可以用一个类树表示,类树中的每一个节点代表一个Wid2 get类,子类可以继承父类的过程和数据结构,也可以覆盖它们或者增添新的过程和数据结构.④多态性:Widget类为它的每个资源确定一个名字,所有的资源都具有一个与它相关联的特定数据类型的值,从而使同一Widget类的不同实例具有不同的外观或特性.⑤层次化:组件类具有层次结构,底层类全部或部分继承高层类的资源.当一个Widget创建时,该Widget是作为另一个Widget的“孩子”,这种“父子”关系,与类树中的“父子”之间的继承关系不同.类的实例Widget对象之间的“父子”关系构成实例树,其树上“父子”关系是一种控制关系.
3 GU I的图形演示技术
在UN IX系统界面设计中,往往需要进行图形图像的演示.要实现UN IX系统下的图形演示,不仅需要考虑X和Motif等的系统资源的利用,还涉及到图形上下文以及颜色等最底层的图形资源的设置.在界面设计过程中,还往往涉及到现存图像的演示.目前UN IX系统下的图像主要有R G B、TIFF、GIF、J P G、BMP等格式,考虑到各种图像格式之间的差别,可以通过SGI工作站上的medi2 arecorder图像处理软件,将其转换为可以在X环境下直接进行演示的格式.
3.1 UNIX界面中的图形演示
根据X应用程序开发的3层策略,X环境下的图形演示可以从以下3个层次进行考虑.首先是面向底层的开发,直接调用Xlib的库函数;其次可以在底层开发的基础上采用Xlib的混合模式,既可以采用与Motif的混合模式,也可以采用与Open G L 的混合模式;最后是面向中层的开发,采用面向对象界面开发工具箱Motif与开放的三维图形库Open G L的混合编程来实现.
3.1.1 基本模式
这是在X环境下进行图形演示的基础.用Xlib 进行图形演示主要是通过图形基元与图形上下文的结合来实现.Xlib所支持的图形基元十分简单,图形中的细节选项由图形上下文决定.从根本上说,所有其它层次的图形演示都是建立在基本模式的基础上,通过Xlib的图形基元的组合,以及设置相应的图形上下文来实现图形功能.由于Xlib是一种底层库,用它来实现图形演示虽然比较灵活,却也比较繁琐,代码复用率低,生成的图形质量差,不适宜于演示复杂的图形.
3.1.2 过渡模式
1)与Motif的混合模式
在Motif界面的应用程序中用Xlib进行图形演示,与基本模式并没有本质的区别,一般均采用在Motif界面需要的位置上安排一个XmDrawingArea 类的组件,用Xt Window函数得到它的窗口,然后在此窗口中用Xlib函数进行图形演示.若需要根据用户在此区域中的鼠标或键盘操作进行图形演示,则可以为此区域定义一定的事件处理函数或者定义它的XmNinputCallback输入回调函数,在事件处理函数或者输入回调函数中根据不同的鼠标或键盘事件进行相应的处理.
2)与Open G L的混合模式
这是利用Open G L在X环境下进行图形演示的基础,其实现的关键是在设置显示特性、产生图形上下文以及图形上下文的映照时,尽量使用Open G L的库函数,以避免在使用Xlib基本库函数时可能因为设置不当影响图形演示效果的操作.一般情况下与Open G L的混合模式程序设计效率高,图形演示的效果好,但是与基本模式相比则存在执行效率上的损失.
3.1.3 融合模式
目前在UN IX系统中的图形演示广泛地采用Motif与Open G L混合编程的方法,即利用Motif提供的编程接口设计图形用户界面,采用Open G L提供的各种库函数进行图形演示.其中比较重要的是在建立组件对象时,必须有一个用于图形处理的可绘图区域组件对象.另外在设置用户函数时,必须对此可绘图区域组件对象的暴露和尺寸变化进行适当的处理,利用此对象与程序中其他的组件对象,一起构成Open G L的窗口初始化,并将绘图区域组件对象依附于一定的容器类组件上.这也是利用融合模式进行图形演示首要考虑的基本问题.
Motif与Open G L的混合模式是应用最为广泛的一种模式,也是Open G L在GU I开发中首先应当考虑的实现方式.其关键技术如下:首先加入混合模式所需特殊头文件<G L/G lwDrawA.h>,然后生成图形演示的基本对象glw,glw=XtCreate-Widget(“glw”,glwDrawingAreaWidgetClass, frame,args,n),最后是回调函数的初始化,这是混合模式成功之关键.
04 江南大学学报(自然科学版) 第1卷
3.2 X 环境的图像演示
在UN IX 界面中,经常需要把一幅图像直接画到窗口中,这些图像一般是从一定格式的图像文件中读取的.UN IX 系统并不直接提供读取这些格式图像的函数,而Xlib 则提供直接对图像进行处理的XImage 数据结构和相应的库函数.因此X 环境的
图像演示,主要是将这些格式的图像转换为可以直
接在X 平台进行演示的XImage 结构,或者通过图形工具箱进行图像演示.
下面以R G B 格式和TIFF 格式这两种最为典型的图像演示为代表来说明X 图像演示的基本方法,其它格式的图像演示可类似解决.3.2.1 R G B 图像演示
Open G L 中提供的Image 格式的图像与R G B 格式相近,可以用Open G L 提供的读取Image 图像的函数getrow 来读取R G B 图像数据,同时定义相应的数据结构,分别存放R 、G 、B 三原色数据用于图形输出.对于Image 格式的图像image ,演示的基本步骤为:读取一行图形数据,将数据存入缓冲区,输出缓冲区.对其中的每一步都应对R 、G 、B 三原色分别处理.当以不同的深度读取的图形数据分别存入缓冲区后,即可用相应的函数实现图像的输出演示.
3.2.2 TIFF 图像演示
TIFF 图象演示的核心思想是,将其转换成可以在X 平台直接演示的XImage 数据结构,然后对转换后生成的XImage 结构处理.其主要过程如下:首先,对R 、G 、B 三色分别处理,分配相应的颜色,设置TIFF 图像的色表;其次,通过相应的函数创建像素图以及用于图像演示的图形上下文;第三,取得绘图区域窗口的属性,并据此创建X 图像,用于演示XImage 图像;第四,将TIFF 图像读到一个内存缓冲区;最后,将内存缓冲区中的TIFF 图像数据赋予X 图像,并将其演示出来.
4 关键技术
4.1 图形上下文冲突
在UN IX 图形演示过程中,由图形上下文引起的冲突一般有两类:一是由显示区设置不当引起的图形显示与其它显示的冲突,这种冲突可以通过将图形演示区所在窗口的父窗口设置为GC 的显示区来解决;另一种是由位图的生成而引发的冲突,它可以通过把绘图区域组件的根窗口屏幕作为显示屏幕的方式来解决.4.2 显示系统的匹配
在Xlib 中有包括显示系统各种信息的Visual 数据结构,在应用程序中,首先要用XmatchVisual 2Info 函数检查程序运行的显示系统类型,通过返回的XVisual Info 类型的数据结构,确定采用相应的显示策略.由于缺省显示类型的图形演示质量较差,在非底层的开发中一般不使用系统缺省的显示类型.4.3 颜色冲突的解决
UN IX 系统的颜色冲突是通过对色元的共享或私有分配解决的.由于系统中能够同时使用的颜色总数有限,如果程序使用的私有颜色较多,就会发生颜色冲突,因此在应用程序中应尽可能使用共享色元.只有在程序中存在需要动态改变而又不允许重画的颜色,图形之间有相互重叠而又互不干扰的位面,以及应用程序需要设置大量的色元的情况下,在系统资源允许时才使用私有色元.4.4 界面中的对象控制
在UN IX 系统Motif 界面中的图形演示,本质上就是要实现对对象的控制,在与Open G L 的混合模式中,虽然OpenG L 自己可以打开一个图形窗口,但随之整个系统就进入了OpenG L 的环境,应用程序原来对对象的控制被中断,整个系统处于失控状态.解决方法是将应用程序的Widget 数据结构嵌入到OpenG L 的环境中,从而实现对对象的完整控制.
参考文献:
[1]RICHARD N T.A Component 2and Message 2Based Architectural Style for GU I S oftware [J ].IEEE R rans on Softw are E ngi 2
neering ,1996,22(8):390-406.
[2]ROHIT M ,BEN S.Visual and Textual Consistenc y Checking Tools for Graphical User Interface[J ].IEEE T rans on Softw are
E ngineering ,1997,23(11):722-735.
(责任编辑:邢宝妹)
1
4第1期
朱雪峰等:UN IX 平台基于Motif 环境的图形用户界面开发技术。

相关文档
最新文档