地理信息系统ArcView用户界面的自定义.docx

上传人:b****5 文档编号:29207574 上传时间:2023-07-21 格式:DOCX 页数:29 大小:794.51KB
下载 相关 举报
地理信息系统ArcView用户界面的自定义.docx_第1页
第1页 / 共29页
地理信息系统ArcView用户界面的自定义.docx_第2页
第2页 / 共29页
地理信息系统ArcView用户界面的自定义.docx_第3页
第3页 / 共29页
地理信息系统ArcView用户界面的自定义.docx_第4页
第4页 / 共29页
地理信息系统ArcView用户界面的自定义.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

地理信息系统ArcView用户界面的自定义.docx

《地理信息系统ArcView用户界面的自定义.docx》由会员分享,可在线阅读,更多相关《地理信息系统ArcView用户界面的自定义.docx(29页珍藏版)》请在冰豆网上搜索。

地理信息系统ArcView用户界面的自定义.docx

地理信息系统ArcView用户界面的自定义

第七章ArcView用户界面的自定义

ArcView自定义是指用户通过调整ArcView的项目组件及其主菜单、按钮条、工具条、弹出式菜单的排列组合方式,以改变ArcView用户界面的基本外观的交互式操作。

ArcView的自定义操作有着自身特定的对话框,在对话框之,用户可以根据自已当前研究项目的特殊需要给用户界面添加新的控制项,也可以删除自己不需要的或根本用不着的控制项。

此外,用户也可以添加经常使用的脚本,使这些脚本能够与新增控制项或者基本操作事件(如打开、关闭一个文档类型)相关联。

另外您也可以简单地将它们纳入到您默认的设置中去。

为自己使用方便而自定义ArcView界面,您可以为每一种默认类型(如:

View、Table、Chart、Layout、Script、Project、Appl等)创建自定义设置,从而创建新的用户界面。

用户所创建的自定义设置可以保存成一个名为default.apr的默认文档文件。

该文件被贮存于用户设定的HOME文档目录之下,每当用户启动ArcView应用程序时,系统将会自动读取该文档信息,并使其凌驾于系统默认设置文件之上,优先生成用户“自定义界面”。

ArcView系统界面配置文件也取名为default.apr,不过它被贮存于系统装载路径中的etc文件夹之,如果用户当前打开的项目路径之下没有“用户自定义的default.apr文件”,则ArcView启动时将自动读取该系统配置文件,生成标准的缺省ArcView界面。

第一节自定义用户界面

如前所述,ArcView的“项目”实际上是由一系列组件(如:

View、Table、Chart等)所组成的文档集合。

每一种组件或文档都具有相似的“图形用户界面”(英文缩写:

GUI),各种类型“组件”的GUI都是由3种基本控制群组所组成,分别为:

菜单栏、按钮条、工具条。

使用ArcView所提供的简单编程语言Avenue,用户可以对GUI进行修改。

比如可以添加、删除或整理组件,可以修改每一种控制群组的属性值,可以对每一个组件之下的所有“控制项”进行编辑。

总之,ArcView可以使用户随心所欲地创建一种符合自身需要的自定义界面。

实际上,用户在进行自定义界面操作时并不需要使用繁琐的Avenue编程,通过双击ArcView当前界面中的按钮条或工具条中的任意空白区,即可弹出一个能够使您轻松完成全部自定义工作的“自定义界面对话框”。

(如图7-1)

一、自定义界面对话框的容

由图7-1可见,ArcView的自定义界面对话框分为3大功能区:

1、上部区

包括两个下拉列表框和三个操作按钮。

(1)“类型”(Type)下拉列表框:

包括Project、View、Table、Chart、Layout、Script、Appl七个选项。

如图7-2左幅。

(2)“种类”(Category)下拉列表框:

包括Menus、Buttons、Tools、Popups四个选项。

如图7-2右幅所示。

(3)“编辑”(Edit)按钮:

单击它,将会弹出一个“项目组件自定义”对话框。

操纵对话框,可以控制ArcView项目窗口中的组件类型及其排布方式,也可修改各组件的名称,比如:

根据视图的实际容,将原来的名称View1改为“世界地图”,将另一个View的复制件名称改为“中国地图”等等。

如图7-3。

(4)“重置”(Reset)按钮:

单击它,则放弃当前自定义编辑,恢复界面的系统设置值。

(5)“创建用户默认文件”(MakeDefault)按钮:

单击它,则将用户自定义的界面设置为“用户默认文件”。

文件名为:

default.apr,保存在$HOME用户目录之中。

2、

中部区(控制编辑器)

功能:

重新组织图形用户界面(GUI)。

用户可以通过修改控制项来改变GUI的外表,配合“描述区”下侧提供的三个按钮:

添加(New)、删除(Delete)、分隔(Separators),可以添加新的控制项、删除多余的项以及对控制项的水平、垂直排列进行分组(通过插入空格实现水平分组,通过插入一条水平线将垂直项目分开)。

3、底部区(属性列表区)

位于整个对话框的底部,外形是一个二维表格。

表格动态反映出上述两个区域对应选项的综合属性信息,这些属性信息决定着ArcView图形用户界面的操作行为及外表。

用鼠标双击二维表的表行任意处,将弹出相应的编辑对话框,通过对话框可以实现对表各属性项的属性值的修改。

由于表格各个属性值类型不同,双击则可能带来三种结果:

其一:

如果该行属性值反映的是“逻辑判断”(回答:

是/否)型属性信息,则双击的结果将立即在“是/否”之间进行变换(比如:

原来值为Ture,则双击后变为“false”)。

其二:

如果该行属性值是一种说明性的“字符串”信息,则双击之后,将弹出一个“字符串”编辑框,在该框用新设字符串信息取代旧字符串信息之后,单击“OK”即可完成编改。

其三:

如果该行属性信息是属于“Avenue”函数型的,则双击后将会弹出一个“脚本管理器”(ScriptManager),如图7-4所示。

用户根据需要可以在管理器的列表区选择合适的脚本类型,然后单击“OK”确认。

综合考虑各种控制项属性,可将底部列表区的属性设置功能概括如下:

①控制项可见与否?

②控制项是否活动?

③与按钮或工具条相关的图标设定

④与工具条相关联的光标形状设定

⑤出现于状态栏的提示信息

⑥与控制项相关联的帮助主题信息

⑦被特定控制项执行的Avenue脚本。

小结:

通过对用户界面中的菜单、按钮、工具条以及与每一种控制项相关联的Avenue脚本的控制,用户就被赋予一种仔细设置GUI以满足自己的特殊应用项目需求的能力。

这种能力可以使用户以其自置的用户界面来取代系统所提供的一成不变的应用程序外表。

二、ArcView项目的自定义窗口

我们知道,ArcView的项目窗口是由左、右两个窗格组成的。

左窗格显示了当前项目的所有组件类型,如:

View、Table、Chart等等。

右窗格则显示了左窗格被选中的某一组件所包含的所有文档列表。

与Windows操作平台的许多应用程序窗口相似,您可以通过鼠标拖拉的方法调节整个窗口的大小,但与其它“双窗格”式视窗不同的是,您不能用同样拖拉的方法改变ArcView项目窗口中左窗格的宽度,也就是说,不论项目窗口的整体怎样改变,显示项目组件的左窗格的宽度总是不变的。

1、改变ArcView项目窗口组件布局(包括调整左窗格的宽度)的方法

(1)双击当前视图工具条或按钮条的任意空白处,或者从“项目”菜单中选择“自定义”(Customize),弹出一个“自定义对话框”。

(2)

在对话框上部区单击“编辑”(Edit)按钮,弹出“自定义项目类型”(CustomizeTypes)对话框。

图7-5(上层为“窗口自定义对话框”,下层为以“Untitled”为名称的项目窗口)

在自定义对话框,分别可以完成组件的“新建”、“复制”、“删除”、改变组件的相关属性(如:

重命名组件标题、改换组件图标、改换“脚本关联函数”等)、改变项目组件的排列次序以及改变项目窗口左窗格宽度等编辑工作。

如果您选中了对话框右侧上、下属性表之间的“立即在项目窗口中展示”(ShowinProjectWindow)复选框,那么您在“自定义对话框”所做的任何改变都会立即在当前“ArcView的项目窗口”中反映出来。

2、“新建”(New)按钮的作用

“新建”允许用户重新设置项目窗口左窗格的组件。

单击“新建”,ArcView将显示出标准默认类型的列表:

Project、View、Table、Chart、Layout、Script、Appl;选定其中一种默认类型并单击“OK”或者双击您想添加的默认类型名称,ArcView自动生成一个新类型,并把该组件的图标及其默认名称添加到对话框左侧的组件滚动栏的最上面,自动进入活动状态。

对于Appl、Project两种组件来说,如果新建以前就已经存在同种组件,则新生组件的名称后面自动加上1、2、3等数字后缀,以示区别。

新生组件的属性值被置为“空”,可以进行“删除”操作。

如果想要该组件在项目窗口中显示出来,则需要选定“ShowinProjectWindow”复选框。

在项目对话框,新生组件将显示于原有同类组件之前,如果没有同种组件,则显示于组件展示区最上端。

3、“复制”(Copy)按钮的作用

其功能是在对话框及当前项目窗口中生成组件的复制品,与“新建”过程不同,“复制”的结果将会在对话框中产生一个与原组件属性完全一致的新组件。

单击对话框左侧项目组件列表中恰当的组件图标选定您想复制的对象,使其高亮度显示;单击“复制”按钮,一个与原组件属性相同的、图标一致而名称相仿(对于Project、Appl类组件来说,复制品的名称是在原组件名称后顺次加上1、2、3等数字后缀)的新组件将出现于组件列表最上面,且自动进入活动状态。

注意:

组件“复制品”可以进行“删除”操作,而原项目组件如果含实质性容的话,则不允许进行“删除”操作。

4、“删除”(Delete)按钮的作用

单击图标,选定对话框左手边滚动列表中的项目组件,使其高亮度显示;单击“删除”钮,完成删除操作。

尽可能避免误删除,如果不小心发生了误操作,可以用“新建”按钮配合恢复原组件。

也可用组合键撤消最后一次操作,使原组件得以恢复。

注意:

您可以对“标准默认类型”进行删除或重新命名,但是下一次当您装载ArcView时,它们将出现在项目窗口中,而且不论是对系统默认文件还是还是您自己目录下的Default.apr文件,结果都会一样。

另外,如果项目包含被选择用户界面的任何文档,那么“删除”按钮将成为灰色。

5、项目窗口中的组件排序

您可以使用鼠标上下拖放的方法对对话框左侧滚动列表中的项目组件进行重新排序。

您也可以通过重排Avenue编程语言中的“项目的VisibleGUIs列表”来达到同一目的。

6、改变属性表中的属性值

当前活动组件的属性是以二列表格的形式出现在对话框的右侧。

通过双击属性表行,您可以改变属性设置。

对于那些包含项目名称或是系统部件的属性项,双击将弹出一个相应管理窗口,如图标管理器、脚本管理器等等,您可以从管理器的有效选项中去有针对性地进行选择。

对于那些包含有名称或者标题等字符串信息的属性表行来说,双击将弹出一个允许您输入字符串信息的窗口。

如果要清除某一属性项,方法是先单击选定它,然后使用键完成操作。

注意:

所有的图标(Icon)属性值都不允许“清除”。

最后还须注意两点:

一是右上方的属性表最好不要修改;二是为项目组件选择的新图标最好要具有象征意义。

选择图标的方法是:

双击右下侧属性表的Icon表行。

三、GUI控制类型(Categary)的自定义操作

如图7-2右幅所示,图形用户界面的基本控制类型有4种,分别是:

菜单、按钮、工具、弹出式菜单。

以下分别对该4种类型的自定义操作方法做以论述。

1、自定义菜单(CustomizingMenus)

(1)给菜单栏添加新菜单

操作方法:

在自定义对话框上部的Categary下拉列表中选择“Menus”,于是,与选定“组件”相对应的所有“主菜单及其菜单项”将显示于对话框中部的“控制编辑器面板”之中(如图7-6)。

单击面板下侧的“NewMenu”按钮,ArcView将在面板之中当前选定菜单的右侧新增一个名为“Menu”的空白主菜单。

注意如果添加前您选定的不是一个主菜单而是一个菜单项,那么新建的主菜单将会出现于整个主菜单序列的最右端。

“Menu”是新增主菜单的系统默认名称,用户可以通过改变菜单的“Label属性”来变更新菜单名,方法是:

双击对话框下部属性表的“Label”项调出字符串输入替代框,用新的菜单名称字符串取代系统默认的“Menu”,即可完成新菜单的换名工作。

但要注意:

如果您在输入新的菜单名称时还想同时为新菜单设置一个“快捷访问键”,其方法是:

在名称字符串中想要设置为快捷键的字母之前加上一个“&”符号(参见图7-6中部菜单显示区的各个菜单项)。

这样,ArcView就会在新界面生成时自动为该快捷访问字母增加一个下划线标识。

快捷键生成后,用户可以通过弹击组合键来快速访问特定菜单。

(2)给指定菜单添加菜单项(Menuitem)

操作方法:

选定一个主菜单或一个菜单项,单击“新菜单项”(NewItem)按钮,ArcView将会在当前选定菜单或菜单项的下侧增加一个名为“Item”的新菜单项。

注意您每点击一次按钮,就会自上而下地新增一个“Item”。

与新建“Menu”相类似,“Item”是系统给定新建菜单项的默认名称。

要改变其名称或为其设置快捷访问键,操作方法与上述“Menu”相似。

(3)在两个菜单项之间插入“分隔线”(Separator)。

有时,为了将下拉菜单项按功能进行分组,使菜单项分区一目了然,往往需要在菜单项之间插入“分隔线”。

方法是:

选定其下侧为另一分组的特定菜单项,单击“Separator”按钮,则面板之中当前选择项的下侧将出现一个空行,这样当自定义结果反映到ArcView项目界面中的相应下拉菜单项时,空行则显示为一个立体“分隔线”。

如图7-7的“文件”下拉菜单所示。

(4)改变主菜单或菜单项排列次序

要改变主菜单的排列次序,方法是:

鼠标拖动主菜单向左或向右移动,直到理想位置后松开鼠标左键。

要改变菜单项上下排列关系,则需用鼠标上下拖动,不过在此应特别注意菜单项位置的变化所引起的菜单下拉列表分组的改变(分隔线位置的变化)。

(5)删除多余的菜单或菜单项

方法是:

选定操作对象,弹击键。

注意对“主菜单”的删除操作将会引起其下所属的菜单项全部消失。

2、自定义按钮(CustomizingButtons)

(1)添加新按钮

首先,在“Category”下拉列表中选定“按钮”(Buttons),自定义对话框中部的“控制编辑器面板”中将随即展示出与项目组件相适用的所有系统默认按钮类型。

选定想要在其后添加新项目的对象按钮,单击面板下侧的“新建”(New)按钮,ArcView自动在当前选定按钮右侧生成一个空白的新按钮,如图7-8上幅(左起第二个为新建按钮)。

由上图的下部属性表“Icon”行可见,新建按钮的图标为“空白”(Empty)。

如果您想为其指定一个图标,则须鼠标双击该行,弹出一个“图标管理器”(图7-8下幅),之后单击选定管理器图标浏览区中符合您需求的理想图标,然后点“OK”钮,完成图标设置。

至于新建按钮应该具备什么样的属性,只有在进一步熟悉了ArcView的控制项属性配置知识之后,方可正确设定。

(2)在按钮之间插入“空格”(Separator)

单击“Separator”按钮,可以在当前按钮条选定的按钮右侧插入一个相当于半个按钮宽度的“空格”。

利用Separator,用户可以将当前按钮条中的所有按钮按照功能进行分组。

(3)删除一个按钮或“空格”

先选定要删除的对象,然后弹击键盘中的键即可。

当前对象被删除后,其原来位置右侧的所有按钮及空格将依次向左移动相应距离。

(4)移动按钮或空格

操作方法与移动“菜单”或“菜单项的方法基本一致。

3、自定义工具条(CustomizingTools)

ArcView工具条的所有工具实际上是属于“工具菜单”,也就是说,它是为了操作方便而将当前菜单栏中的某些常用菜单项设置成可以使用鼠标直接点击的“按钮”。

(1)给工具条添加新的工具菜单项

方法是:

在自定义对话框选定“组件类型”及“控制类型(这里为Tools)”;在已经存在的工具列表中选定想要在其后增加新项的“当前工具项”,单击下侧的“工具菜单”(ToolMenu)按钮。

ArcView立即在当前选项的右侧新增一个空白的“工具菜单按钮”(如图7-9所示,左起第二钮为新建“工具”,其下侧两个空白钮为连续点击“Tool”两次而生成的“新建”下拉工具)。

另外,给“空白新建工具”指定图标的方法与上述为“新建按钮”指定图标的方法相同,这里不再重复。

(2)给整个工具条或工具菜单添加一个新“工具”

方法与1相似,只是操作时要以“Tool”按钮取代“ToolMenu”按钮。

注意:

只有新建的ToolMenu可以使用“Tool”创建下拉工具,系统原有的工具菜单如果没有被指定下拉工具条,那么用户也不可能为其自定义下拉工具。

原有的或者是新建的包含下拉工具条的“工具菜单”,在其右下角都有一种很小的“黑色倒三角形”标志。

(3)删除或移动一个工具或工具菜单项

方法与自定义按钮的相关方法一致。

4、自定义弹出式菜单(CustomizingPopups)

ArcView的项目组件可以有弹出式菜单,也可以没有。

除了需要在当前活动文档区域用鼠标右键单击调用之外,弹出式菜单的大部分项目与视图菜单栏中的对应项的功能是完全一致的。

弹出式菜单的主要特点是操作非常方便快捷。

虽然每一种用户界面可能含有零到多个Popups,但在同一时间却只有一个弹出式菜单是活动的。

缺省情况下,在弹出式菜单设置区,通常第一个,也就是最左边的一个是当前活动的Popup。

您可以在“显示区”用鼠标左右拖动的方法来简单地设置当前活动项。

您也可以用Avenue脚本来完成同样的工作(参见本节稍后部分)。

(1)向PopupSet编辑区添加新的弹出式菜单

首先在自定义对话框指定组件类型(Type)与控制项类型(Category//Popup),ArcView自动将现存的与之相关的弹出式菜单显示于“控制编辑器面板”中(如图7-10)。

单击下侧的“NewPopup”按钮,ArcView则将一个名为“Popup”的新的弹出式菜单添加于当前选项的右侧(参见右图的面板显示区的两个同名菜单)。

新的弹出式菜单生成后,如果想要更换其名称,则须在对话框下部的“属性”表格双击其“Label”表行,在随即弹出的字符串输入框键入新的名称,单击“OK”确定。

虽然在GUI之中,弹出式菜单的“Label名称”并不显示,但是您可以使用它来定义弹出式菜单的容及其作用。

(2)给指定的弹出式菜单添加新的菜单项(MenuItems)

在对话框的“控制编辑器面板”中,选定想要添加菜单项的弹出式菜单,然后单击下侧的“新增项目”(NewItem)按钮,ArcView自动在当前弹出式菜单下增加一个新的菜单项目,注意每点击一下“按钮”,将增加一个新项目。

图7-10弹出式菜单列表区的最右侧是在“Popup新建菜单”之下连续增加的4个“MenuItems”的示例,它们的默认名称均为“Item”,其中在第3个与第4个Item之间还添加了一个“分隔线”(Separator)。

新建的各个“Item”,其名称都可以通过改变属性表的“Label属性”值来变更。

如果想要在“新名称字符串”中设置一个字母为快捷键,则需要在该字母前添加一个“&”字符标识,这样,在图形用户界面生成后,就可以使用的组合键直接调用该菜单项。

注意每一个菜单项,其快捷键字母都应当是“唯一”的,不重复的。

(3)在“控制编辑器面板”中指定“活动”的弹出式菜单

方法是:

选定想置其于活动状态的弹出式菜单项,比如图7-10中最右端的“Popup”新建项。

用鼠标左键将其拖拉至显示区最左端,释放左键,则该“Popup”将被新指定为弹出式菜单活动项。

(4)给弹出式菜单项添加一个“分隔线”(Separator)

添加水平“分隔线”可以将较多的菜单项分成不同的逻辑群组。

操作方法是:

单击选定想要添加“分隔线”的上邻菜单项,点击“Separator”按钮,则当前选项之下被插入一个“空行”,当在GUI之中右键单击调用该弹出式菜单时,可以看到在该“空行”上下两个菜单项之间将出现一个立体“分隔线”(如图7-11所示)。

(5)删除一个弹出式菜单或其菜单项

方法是先选定要删除的对象,然后弹击键。

(6)移动弹出式菜单或其菜单项

方法与移动“工具项”或“按钮项”的方法一致。

(7)置另一个弹出式菜单为“活动菜单”(active)

如前所述,您可以通过Avenue来完成缺省活动菜单的设置工作。

举例如下:

假定您的视图用户界面包含3种弹出式菜单:

一种支持普通功能,一种支持管理“城市主题”的特殊功能,另一种支持管理“省区主题”的特殊功能。

在ArcView视图运行时,您想分3种情况分置活动菜单:

当“城市主题”处于活动状态时,置第二种弹出式菜单为“活动菜单”;当“省区主题”处于活动状态时,置第三种弹出式菜单为“活动菜单”;当其它主题处于活动状态或当前没有主题在活动时,置普通功能菜单(第一种)为“活动菜单”。

以下是一个脚本更新的例子,要求首先将普通功能的弹出式菜单置为缺省设置,而其它为专门主题服务的功能性弹出式菜单被冠于对应的主题名称。

脚本示例:

theView=av.GetActiveDoc

if(theView.GetActiveThemes.Count=0)then

exit

end

firstActive=theView.GetActiveThemes.Get(0)

activePopup=self.GetControls.FindByLabel(firstActive.GetName)

if(activePopup=nil)then

self.SetActive(self.GetControls.Get(0))’usedefault

else

self.SetActive(activePopup)

end

该更新脚本应当与ArcView的视图用户界面弹出式菜单设置的变更事件相关联,并位于下列相关设置语句之下:

av.FindGUI(“View”).GetPopups.SetUpdate(“viewPopup.update”)

第二节Avenue程序语言初步

一、Avenue导言

Avenue是ArcView置的程序语言与开发环境。

作为一种“面向对象的程序语言”,它可以完成ArcView所有的对象(包括请求)的管理工作。

可以说,ArcView的图形用户界面及其所有的文档操作与运行都离不开Avenue的语言环境与Avenue脚本文档。

Avenue有许多用途。

如前所述,您可以使用Avenue语言去自定义ArcView的工作界面与工作方式。

您可以创建您所需要的GUI,为交互的图形控制项设置部属性。

您甚至可以用Avenue语言开发出一种基于GUI的完整的应用程序。

此外,您还可以将已经编写好的Avenue脚本与诸如打开或关闭一个项目一类的其它操作事件相。

二、面向对象程序设计语言的基本原理

近年来,面向对象的系统与程序语言普遍受欢迎。

描述一种“面向对象的环境”的最好的方式也许就是将其与其他更多的传统程序设计环境相比较。

在如同Fortran或C的传统程序语言环境之中,不同语言的差别主要表现在“数据”与展示数据的“动作”之间。

这些以编程工具建造的应用程序经常分享着一个强大的中心焦点。

这样,在那些象“速算表”或者“Dbase”管理系统的应用程序之间,一个明显的区别就表现在应用程序与被应用程序操纵的数据之间。

然而,在一个“面向对象的系统”之中,一切都被视作“对象”。

数据是对象、应用程序是对象,甚至连用户界面都被看成是一个统一的系统环境之中的对象。

在这样的程序语言之中,描述数据的对象与那些专用于数据建模的工具对象之间的区别之不过是被指定的部属性不同罢了。

在这种系统中,各个对象之间的关系由一个正式建立的等级分类所圈定。

一个类就是一个由一些具有相似的普通属性的对象所构成的模板。

一个孤立的对象就是一个类的特例。

比如:

一个项目可能包含许多“视图”,而其中的每一个视图就是一个“视图类”的特例。

因为“类”是

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 研究生入学考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1