IDL图形化界面设计自学总结

本文是作者自学IDL界面编程的心得体会,重点介绍了如何与ENVI进行联动,以及常见错误如WIDGET_BASE:Invalidwidgetidentifier:19的解决。文中详细讲解了基础组件如Base、Button和Label的创建及参数设置,并提供了示例代码。同时强调了在调试过程中ENVI的管理问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写在前面本文是一些关于IDL界面编程的自学总结,包括一些问题和基础语法的介绍,具体参考董彦卿老师的《IDL程序设计–数据可视化与ENVI二次开发》以及徐永明老师的《遥感二次开发语言IDL》,徐永明老师的书里主要介绍一些基础语法,和IDL遥感应用实例,董彦卿老师的书内容较多,适合作为帮助文档查看。

首先是一些常见问题

很多时候IDL需要和ENVI联动,如果没有打开ENVI或者中途关掉了ENVI可能会出现一个WIDGET_BASE: Invalid widget identifier: 19的错误,这一点需要格外注意,以及,在调试过程中,如果出现问题后点击停止调试,那么ENVI也会被关掉,再运行时需要重启ENVI。

常用组件

(1)Base 组件:
Result=WIDGET_BASE([PARENT][,/KEYWORDS])
Base是其他所有组件的基础,需要首先创建,参数包括Floating:创建浮动窗口;Model:创建模式框窗口;mbar:创建菜单栏(初始界面创建常用);TLB_FRAME_ATTR:创建不同类型窗口;TLB_KILL_REQUEST_EVENTS:控制关闭相应事件
具体参数调用可以查看Harris帮助文档,
eg:

 tlb = WIDGET_BASE(title = '标题',     $
    mbar = mbar,                              $
    uname = 'tlb',                            $
    /tlb_kill_request_events,                 $
    /tlb_size_events,                         $
    /column,                                  $
    map = 0,                                  $   ;隐藏
    event_pro = 'tlb_event')

(2) 按钮组件
Result=WIDGET_BUTTON([PARENT][,/KEYWORD])
参数包括value:不同类型的显示方式,一般使用字符串显示;Menu:创建菜单按钮;Separator:菜单之间的分割线;复选或单选:由按钮父组件WIDGET_BASE中EXCLUSIVE和NONEEXCLUSIVE控制

  w_stat=WIDGET_BUTTON(mbar,/menu,value='统计信息')
  ;此处接上文代码,上文创建了base(包含mbar菜单栏)此处接着mbar创建子菜单button
  w_Stat1=WIDGET_BUTTON(w_stat,value='波段统计信息',event_pro='stata')
  ;event_pro为点击按钮触发的事件

(3)标签组件Label
Result=WIDGET_LABEL([parent][,/keyword])
参数包括value:组件上显示的字符串,换行显示用string(13b)分隔,Frame为字符串外围边框宽度,为0则不显示。

wlabelR1 = WIDGET_LABEL(wpmBase, value = 'Rule 1:   ',/align_left)
;这里写了个对齐方式

持续更新。。。。。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值