博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IDL_GUI
阅读量:4634 次
发布时间:2019-06-09

本文共 2599 字,大约阅读时间需要 8 分钟。

菜单栏设计PRO IDLGui  ;构建界面  ;显示  ;添加事件  tlb=WIDGET_BASE(xsize=400,ysize=400,/column,mbar=mbar);实现基类  file=WIDGET_BUTTON(mbar, $  ;新建button,    value='文件')  open=widget_button(file,value='打开',/menu)  jpg=widget_button(open,value='jpg')  exist=widget_button(file,value='退出',/SEPARATOR)  WIDGET_CONTROL,tlb,/realizeEND效果------------------------------------》 定义一个界面并赋予事件过程 idlgui.proPRO IDLGui_event,event  ;_event:程序关联if(tag_names(event,/STRUCTURE_NAME) eq 'WIDGET_KILL_REQUEST') then begin  result=DIALOG_MESSAGE("是否关闭",/QUESTION)  CASE (result) OF    'Yes': BEGIN      WIDGET_CONTROL,event.TOP,/DESTROY      return    END    'No': BEGIN      RETURN    END    ELSE: BEGIN    END  ENDCASEendif    ;print,'now here'  uname=WIDGET_INFO(event.ID,/uname)  ;help,event,  PRINT,'Now, you clicked '+uname  ;获取变量  WIDGET_CONTROL,event.TOP,GET_UVALUE=ptr  CASE (uname) OF    'open': BEGIN      file=DIALOG_PICKFILE(FILTER='*.jpg',path=(*ptr).path,GET_PATH=path2);      ;get_path:记住当前选中的路径然后赋值给path      (*ptr).path=path2      WIDGET_CONTROL,(*ptr).BTTEXT,SET_VALUE=file;设置值bttext    END    'show': BEGIN      WIDGET_CONTROL,(*ptr).BTTEXT,GET_VALUE=file;      READ_JPEG,file,data      wset,(*ptr).wind;设置当前窗口      TVSCL,data,/true;tv只认当前窗口    END    'exit': BEGIN      widget_control,event.top,/DESTROY;销毁    END  ENDCASE  END PRO IDLGui  ;构建界面  ;显示  ;添加事件  COMPILE_OPT idl2  tlb=WIDGET_BASE(/column,mbar=mbar,/TLB_KILL_REQUEST_EVENTS);实现基类  xsize=400,ysize=400,  file=WIDGET_BUTTON(mbar, $  ;新建button,    value='文件')  open=WIDGET_BUTTON(file,value='打开',/menu,uname='open')  jpg=WIDGET_BUTTON(open,value='jpg',uname='open')  exist=WIDGET_BUTTON(file,value='退出',/SEPARATOR,uname='exit')  ;工具栏---带有系统图标的,如果是外部的图片用绝对路径  btbase=WIDGET_BASE(tlb,/row)  btOpen=WIDGET_BUTTON(btbase,value='open.bmp',/BITMAP,uname='open')  btshow=WIDGET_BUTTON(btbase,value='advanced.bmp',/BITMAP,uname='show')  ;文本框  bttext=WIDGET_TEXT(btbase,XSIZE=70)  dbase=WIDGET_BASE(tlb,/row)  draw=WIDGET_DRAW(dbase,xsize=500,ysize=500)  ;居中  DEVICE,GET_SCREEN_SIZE=screen_size;得到屏幕大小  result=WIDGET_INFO(tlb,/geometry);得到窗体的几何信息  ;help,result  ;计算窗体两边的偏移量  offset=[screen_size[0]-result.SCR_XSIZE,screen_size[1]-result.SCR_YSIZE]/2  ;将得到的偏移量应用到应用程序  WIDGET_CONTROL,tlb,xoffset=offset[0],yoffset=offset[1],/realize  widget_control,draw,GET_VALUE=wind      ;传递变量---结构体+指针  pstate={bttext:bttext,$            wind:wind,  $            path:''}  ptr=PTR_NEW(pstate,/NO_COPY)  WIDGET_CONTROL,tlb,SET_UVALUE=ptr   ;事件  Xmanager,'IDLGui',tlb ,/no_block;no_block----idl命令行失效,xmanager在最上面定义eventEND效果

转载于:https://www.cnblogs.com/shangguanjinwen/p/4262920.html

你可能感兴趣的文章
js实现双击后网页自己主动跑-------Day55
查看>>
TMS320F28335项目开发记录2_CCS与JTAG仿真器连接问题汇总
查看>>
PS多形式的部分之间复制“笨办法”
查看>>
最强的篮球队和马尔可夫模型
查看>>
hdu-4302-Holedox Eating-线段树-单点更新,有策略的单点查询
查看>>
cocos2d-x 音效中断问题
查看>>
设计模式简要笔记
查看>>
子分类账知识学习(汇总网上比较有用的资料)
查看>>
关于JQuery中的ajax请求或者post请求的回调方法中的操作执行或者变量修改没反映的问题...
查看>>
pyQt 每日一练习 -- 登录框
查看>>
wp 删除独立存储空间文件(多级非空文件夹删除)
查看>>
Loadrunner安装使用入门
查看>>
smartupload 上传文件时 把页面编码改成gbk 解决乱码
查看>>
EPS是什么格式
查看>>
新闻网大数据实时分析可视化系统项目——5、Hadoop2.X HA架构与部署
查看>>
【原创】Linux环境下的图形系统和AMD R600显卡编程(11)——R600指令集
查看>>
input禁止显示历史输入记录
查看>>
本日进度6
查看>>
两下或多下回车造成数据库多次提交事物的解决方法
查看>>
Python的数据库操作(Sqlalchemy)
查看>>