欢迎来到天天文库
浏览记录
ID:20790264
大小:287.50 KB
页数:22页
时间:2018-10-15
《idl应用程序构造》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、IDL高级培训应用程序构造篇建立、管理应用程序IDL有两种应用程序管理方法:主程序和工程主程序:建立与程序名同名的.pro文件,编译执行。protest…end在这种方式下,根据IDL的自动编译规则,所有被调用的子程序或者与主程序写入同一个文件中并放置在主程序的上部;或者写成与子程序同名的.pro文件,存储在可搜索的路径下。(子程序指过程或函数)工程:建立若干个.pro文件,每个文件不必与任何子程序同名。指定其中一个过程为主程序,该过程的名字作为工程执行时首先调用的过程(即runcommand)。在这种方式下,由于程序编写未必遵守ID
2、L的自动编译规则,因此在运行前必须编译工程中所有的文件。分发:将源程序编译为.sav文件。主程序方式,需手工编译、存储为.sav文件.compileapp_proresolve_allsave,/routines,app_pro,app_sav工程方式,设置工程属性为形成.sav文件,使用工程菜单项下的build选项即可应用程序结构XmanagerWidgetCreationRoutine(TLB)callxmanagerEventHandlerCallingRoutineEventstructureOnlyifTLBisdestor
3、yed主程序调用相关子程序主程序结构主程序的一般结构:proapp_procompile_optidl2createtoplayoutbase(TLB)createguibaseonTLB(initialapplication)realizeTLBcollectuserinformationcallxmanager[,/NO_BLOCK]endinitialapplication该过程可以在主程序里进行。但更好的办法是编写单独的过程,用TLB的notify_realize关键字指定过程名,当realizeTLB时执行。/NO_BLOC
4、K使用该关键字,主程序运行后,命令行仍然可以使用,主程序自身仍可修改编译,有利于调试。compile_optidl2改变默认编译选项,idl2表示defint32和strictarrGUI组成结构standardTLB:tlb_id=widget_base(group_leader=group$,uname=’tlb‘,title=’idlapp‘)适用于一般的应用程序,可以单独运行或被调用。group可以不存在。modalTLB:tlb_id=widget_base(group_leader=group,/modal,uname=’
5、tlb‘,title=’modalapp‘)适用于对话框类的应用程序,通常不可以单独运行,只能被调用。group必须合法。调用该类程序后,调用者暂时挂起,直至该程序返回。TOPLevelBase(TLB)的两种基本形式GUI基本组件容器组件:widget_base:任何GUI组件必须在某BASE组件上实现。一个BASE组件可以包含其它的BASE。GUI组件:widget_draw:图形窗口,所有的图形、图像显示均在此实现widget_label:标签,不可编辑的文本,可用于提示、说明widget_button:按钮,分为pushbut
6、ton、radiobutton和checkbox。可用于命令、单选以及多选widget_text:文本框,可编辑的文本,可用于用户输入widget_slider:滑动条,分为水平和垂直,可用于调整预设值widget_listbox:列表框,用于项目选择widget_droplist:下拉列表框widget_table:表格,可编辑的二维数据组件标识:每一个组件创建时都会产生一个id,并且可以指定一个uname。这些都是以后检索、操作这个组件的标识。GUI其他组件CompoundWidgets组合组件是一组完备、自容、可重用的应用程序,
7、使用时与基本组件大致相同,但它们是用IDL编写的。所有组合组件的名称都以cw_开始。组合组件包括一下几类:Animation(动画)ColorManipulation(颜色操作)DataEntryandDisplay(数据输入输出)ImageManipulation(图像处理)Orientation(定位操作)UserInterface(用户界面)组合组件一般目的是扩充了相应的基本组件的功能。Dialogs对话框用于用户界面,可以象组件一样使用,但它不属于组件构造层次。对话框是modal元素,当调用一个对话框时,其他界面元素暂时挂起直
8、至对话框返回。对话框包括以下几种:FileandDirectorySelection:DIALOG_PICKFILEMessage:DIALOG_MESSAGEPrinting:DIALOG_PRINTJOB、DIALO
此文档下载收益归作者所有