发明名称
应用程序的图形界面开发方法
摘要
一种应用程序的图形界面开发方法,根据所创建的窗体,确定其对应的对象描述文件与资源描述文件,并将对应的图形读入内存,通过计算对象的当前状态,调出相应的图形,并将其显示在指定位置上,本发明减少了应用程序本身所占的存储容量,还可以实现自适应分辨率,同时对图形资源进行分组,达到运行时换肤目的。
权利要求(13)
1.一种应用程序的图形界面开发方法,其特征在于包括如下步骤:建立对象描述文件库与资源描述文件库;创建一窗体,确定窗体对应的对象描述文件与资源描述文件;根据资源描述文件中的图形信息,将对应的图形读入内存;根据对象描述文件中的对象属性,创建所有对象;计算所有对象的当前状态,并根据当前状态,确定其图形内容参数;及根据图形内容参数,调出相应的图形,并将其显示在指定位置上。
2.如权利要求1所述应用程序的图形界面开发方法,其特征在于,确定窗体对应的对象描述文件与资源描述文件的步骤,是根据窗体名称确定的。
3.如权利要求1所述应用程序的图形界面开发方法,其特征在于,对象属性包括对象的显示位置、显示大小、所显示图形内容。
4.如权利要求1所述应用程序的图形界面开发方法,其特征在于,计算所有对象的当前状态的步骤,若某一对象不存在媒体类,则结束该对象的程序。
5.如权利要求1所述应用程序的图形界面开发方法,其特征在于,图形内容参数包括图形文件编号、图形显示目的区域、图形显示源区域。
6.如权利要求1所述应用程序的图形界面开发方法,其特征在于,对象当前的状态,还包括自适应分辨率。
7.如权利要求6所述应用程序的图形界面开发方法,其特征在于,自适应分辨率,还包括如下步骤:检测当前操作系统的分辨率;初始化窗体的分辨率转换系数;读出窗体的指定分辨率;计算指定分辨率与当前操作系统的分辨率之间的转换系数;及根据转换系数,计算窗体内对象的坐标值。
8.如权利要求7所述应用程序的图形界面开发方法,其特征在于,分辨率转换系数为当前操作系统分辨率除以窗体的指定分辨率。
9.如权利要求1所述应用程序的图形界面开发方法,其特征在于,根据资源描述文件中的图形信息,将所需的图形读入内存的步骤,是从资源描述文件中取得所有图形的文件名,并将其按一定顺序进行编号、分组后读入内存。
10.如权利要求9所述应用程序的图形界面开发方法,其特征在于,将所有图形的文件名按一定顺序进行编号、分组,在运行时换肤,每一组构成一套皮肤,并对应一个皮肤号。
11.如权利要求10所述应用程序的图形界面开发方法,其特征在于,运行时换肤,还包括如下步骤:隐藏当前存在的所有窗体及所有对象;对应当前窗体,找到目的皮肤号所指定的对象描述文件与资源描述文件;根据目的皮肤号的对象描述文件更改现有对象的属性;及根据资源描述文件的图形信息,将相应的图形读入内存。
12.如权利要求11所述应用程序的图形界面开发方法,其特征在于,根据目的皮肤号的对象描述文件更改现有对象的属性的步骤,还包括根据目的皮肤号的对象描述文件创建新的对象。
13.如权利要求9所述应用程序的图形界面开发方法,其特征在于,每一套皮肤对应于应用程序的不同显示风格、语言版本。
技术领域
本发明涉及一种界面开发方法,尤其涉及一种应用程序的图形界面的开发方法。
背景技术
图形用户界面(Graphics User Interface),简称GUI,使用图形的方式,借助菜单、按钮等标准界面元素和鼠标操作,帮助用户方便地向计算机系统发出指令,激活操作,并将系统运行的结果同样以图形方式显示给用户。图形用户界面画面生动、操作简单,省去了使用字符界面时用户必须记忆各种命令的麻烦,已经成为目前几乎所有应用软件的既定标准。
图形界面已经是现代软件中人机交互的主要手段。公知的对应用程序图形界面的开发中,对于图形界面开发都没有一个规范而通用的方法,通常开发人员都需要写出相当冗长的程序代码。以挪威的Troll Tech公司开发的Qt库为例,在其基础上生成一个图案按键,所需基本操作步骤包括:请参见图1,首先,建立按键显示所需的窗体(步骤111);然后将所要显示的图片读入内存(步骤112);根据按键当前的状态显示所需的图片(步骤113);当有用户操作时计算出按键的新状态(步骤114);根据按键此时的新状态显示所需的图片(步骤115)。
应用上述方法来开发应用程序的图形界面,对于复杂的图形化对象,所要做的工作的复杂程度可想而知,冗长的程序代码使应用程序本身也占用了大部分的存储空间。并且应用程序界面的对象大小及位置,都是在设计时就已经完成的,界面显示图案的整体风格也是固定而且单一的,不能根据用户的需要进行变换。当应用程序运行在操作系统的各种不同分辨率时,其显示效果也不能随着分辨率的改变而变化,当用户的操作环境和习惯与设计环境有差别时,会严重的影响界面的外观。
发明内容
本发明所要解决的技术问题为提供一种应用程序的图形界面开发方法,使界面设计的灵活性大大增加,减少了应用程序本身所占的存储容量,能够适应操作系统的不同分辨率,在运行过程中还可以根据需要改变界面风格。
为实现上述目的,本发明提供一种应用程序的图形界面开发方法,首先建立对象描述文件库与资源描述文件库;程序运行中创建一窗体,确定窗体对应的对象描述文件与资源描述文件;然后,根据资源描述文件中的图形信息,将对应的图形读入内存;再根据对象描述文件中的对象属性,创建所有对象;计算所有对象的当前状态,并根据当前状态,确定其图形内容参数;最后,根据图形内容参数,调出相应的图形,并将其显示在指定位置上。
本发明所提供的应用程序图形界面开发方法,使窗体界面设计的灵活性大大增加,减少了应用程序本身所占的存储容量。还可以根据操作系统分辨率的不同而改变界面上所有对象的显示位置与大小。应用此方法开发出来的图形界面还可以改变界面整体风格,变更对象的个数与种类,改变对象的位置与大小、改变语言等,使应用程序的界面更具观赏性和实用性。
为使本发明的目的、构造特征及其功能有进一步的了解,配合附图详细说明如下:附图说明图1是公知图形界面开发方法的流程图;图2是本发明所提供的应用程序图形界面开发方法流程图;图3是本发明中自适应分辨率的流程图;及图4是本发明中程序运行中换肤流程图。
其中,附图标记说明如下:步骤111--建立按键显示所需的窗体,步骤112--将所要显示的图片读入内存,步骤113--根据按键当前的状态显示所需图片,步骤114--当有用户操作时计算出按键的新状态,步骤115--根据按键此时的新状态显示所需图片,步骤211--建立对象描述文件库与资源描述文件库,步骤212--创建一窗体,确定窗体对应的对象描述文件与资源描述文件,步骤213--根据资源描述文件中的图形信息,将对应的图形读入内存,步骤214--根据对象描述文件中的对象属性,创建所有对象,步骤215--计算所有对象的当前状态,并根据当前状态,确定其图形内容参数,步骤216--根据图形内容参数,调出相应的图形,并将其显示在指定位置上,步骤311--检测当前操作系统的分辨率,步骤312--初始化窗体的分辨率转换系数,步骤313--读出窗体的指定分辨率,步骤314--计算指定分辨率与当前操作系统分辨率之间的转换系数,步骤315--根据转换系数,计算窗体内对象的坐标值,步骤411--隐藏当前存在的所有窗体及所有对象,步骤412--对应当前窗体,找到目的皮肤号所指定的对象描述文件与资源描述文件,步骤413--根据目的皮肤号的对象描述文件更改现有对象属性,步骤414--根据资源描述文件的图形信息,将相应的图形读入内存。
具体实施方式
下面结合附图对本发明进行详细说明。
在应用程序开始运行之前,开发者通常需要对应用程序所显示的图形界面进行设计。本发明提供的应用程序图形界面开发方法,请参见图2。首先,建立对象描述文件库与资源描述文件库(步骤211);创建一窗体(Form),确定窗体对应的对象描述文件与资源描述文件(步骤212);然后根据资源描述文件中的图形信息,将对应的图形读入内存(步骤213);再根据对象描述文件中的对象属性,创建所有对象(步骤214);计算所有对象的当前状态,并根据当前状态,确定其图形内容参数(步骤215);最后,根据图形内容参数,调出相应的图形,并将其显示在指定位置上(步骤216)。
为了使图形界面全面支持图形化,本实施例将实现过程封装为以下几个程序类:图形资源类(CPResImage):该类代表每一个实际的图形文件,该类通过指定文件名,将图形文件读入内存并根据显示参数将其显示在指定位置。
对象媒体类(CPMediaList):该类是对象与资源的连接,它记录着对象中对所需显示图形的需求。
基本对象类(CPObject):是界面中每一个可以作为显示的基本单位。
基本窗体类(CPForm):是一组基本对象组成的界面,每一个窗体对应着一个唯一的对象描述文件与资源描述文件。
完成了对程序类的封装后,应用程序设计者还要创建对界面进行描述的配置文件。配置文件包括由对象描述文件组成的对象描述文件库以及由资源描述文件组成的资源描述文件库。其中,对象是图形用户界面中每一个可作为显示的基本单位,它里面不再包含其它成分,其作用是完成与用户的一次交互,包括接受用户的一个命令,接受用户的一个文本输入,向用户显示一段文本或一个图形等。对象描述文件系为描述图形界面中所有对象的属性,如:对象的显示位置、显示大小、所显示图案的内容等。资源描述文件是描述图形界面中所有用到的图形文件。
当应用程序需要创建一窗体时,根据窗体的名称找出相应的资源描述文件与对象描述文件,资源描述文件中列出了本窗体所显示的图形信息。从资源描述文件中取得应用程序界面要用到的所有的图形文件的文件名,并将其编号、分组后读入内存。对象描述文件中描述了本窗体的对象属性。根据相应的对象描述文件中记录的对象属性就可以创建所有对象。对象描述文件与资源描述文件是通过媒体类连接的,媒体类记录着对象中所需显示图形的需求。当对某一对象进行刷新时,首先检查该对象是否有媒体类,如果对象内没有媒体类,说明对象没有需要显示的内容,则退出刷新处理。如果对象有媒体类,则根据对象当前的状态计算出所需显示的图形与媒体对应的序号,将媒体序号、对象显示设备、图形文件编号、显示的源区域与目的区域等,作为图形内容参数交给媒体类处理,媒体类经过计算将传入的图形内容参数变更为图形资源类所需的参数,并交其处理。图形资源类按指定的参数将图形显示在指定设备上。最后,关闭窗体,释放图形资源。
根据本发明所提供的方法,可自适应分辨率。请参见图3,在程序开始运行时,首先检测当前操作系统的分辨率(步骤311);初始化窗体的分辨率转换系数(步骤312);读出窗体的指定分辨率(步骤313);计算指定分辨率与当前操作系统的分辨率之间的转换系数(步骤314);根据转换系数,计算窗体内对象的坐标值(步骤315)。
在上述过程中,检测当前操作系统的显示分辨率,并计为ResolutionX与ResolutionY。创建某一窗体时,初始化窗体分辨率系数FactorX与Factory分别为1,然后读出窗体的指定分辨率,计算指定分辨率与当前分辨率之间的转换系数,具体做法是:
读出窗体的指定分辨率FormWidth与FormHeight,则,窗体的分辨率转换系数为:FactorX=ResolutionX/FormWidthFactory=ResolutionY/FormHeight如果窗体无指定分辨率,则FormWidth与FormHeight分别等于当前操作系统的显示分辨率ResolutionX与ResolutionY。在创建窗体中的对象时,将每一个对象的显示坐标经过分辨率转换系数重新计算,再将对象按照转换后的新的坐标显示出来。
别具一格的程序外观足以影响用户的选择。拥有友好而富有个性的用户界面的软件,又往往具有更强的功能。本发明提供的图形界面开发方法,还可以实现在应用程序运行时换肤。换肤也就是使界面能够改变显示风格、语言版本等。上述对所有的图形文件的文件进行编号、分组就是为了使本方法可以在应用程序运行时进行换肤。请参见图4,图4是本发明中程序运行中换肤流程图。首先,隐藏当前存在的所有窗体及所有对象(步骤411);对应当前窗体,找到目的皮肤号所指定的对象描述文件与资源描述文件(步骤412);根据目的皮肤号的对象描述文件更改现有对象的属性(步骤413);根据资源描述文件的图形信息,将相应的图形读入内存(步骤414)。
应用程序开发者需要按照类型将应用程序界面显示用的图形文件分为不同的组,每一组成为一套皮肤,对应着一个皮肤号。每一套皮肤代表了不同的显示风格、语言版本等。应用程序激活前,可以指定此时所显示的皮肤的序号,在运行过程中,可以通过输入皮肤号的界面来随时改变应用程序的界面。取出目的皮肤号所标示的资源描述文件与对象描述文件,如果当前皮肤号与目的皮肤号不同,则取出当前存在的一个窗体,隐藏窗体及其子对象,然后取出窗体内的一个对象,如果对象存在于目的皮肤号对象描述文件内,则更改对象的属性。如果对象不在目的皮肤号的描述文件内,则根据目的皮肤号的对象描述文件创建新的对象。直到完成了将窗体内的所有对象都更改属性后,经过刷新处理,媒体类经过计算将传入的参数变更为图形资源类所需参数,调用相应的图形显示在指定位置上,即完成了整个界面的换肤工作。
以上所述,仅为本发明较佳实施例,但并非用来限定本发明的实施范围;因此本发明所要求保护的权利要求范围应以权利要求书所申请保护的权利要求为准。
说明书附图: