⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chapter07drawwidget.pro

📁 idl 可视化分析与应用(随书程序)
💻 PRO
字号:
;Chapter07DrawWidget.pro
PRO CDE_LoadCTEvent, event
  XLOADCT, /BLOCK, GROUP = event.ID
  imageDraw = WIDGET_INFO(event.TOP, FIND_BY_UNAME = 'imageDisplay')
  WIDGET_CONTROL, imageDraw, GET_VALUE = windowDraw
  WIDGET_CONTROL, event.TOP, GET_UVALUE = image
  WSET, windowDraw
  TV, image
END
PRO CDE_PaletteEvent, event
  XPALETTE, /BLOCK, GROUP = event.ID
  imageDraw = WIDGET_INFO(event.TOP, FIND_BY_UNAME = 'imageDisplay')
  WIDGET_CONTROL, imageDraw, GET_VALUE = windowDraw
  WIDGET_CONTROL, event.TOP, GET_UVALUE = image
  WSET, windowDraw
  TV, image
END
PRO CDE_DoneEvent, event
  WIDGET_CONTROL, event.TOP, /DESTROY
END
PRO CDE_DrawEvents, event
  WIDGET_CONTROL, event.TOP, GET_UVALUE = image
  PRINT, 'Column:', event.X
  PRINT, '   Row:', event.Y
  PRINT, ' Value:  ', image[event.X, event.Y]
  IF (event.RELEASE EQ 4) THEN BEGIN
    contextBase = WIDGET_INFO(event.TOP, FIND_BY_UNAME = 'drawContext')
    WIDGET_DISPLAYCONTEXTMENU, event.ID, event.X, event.Y, contextBase
  ENDIF
END
PRO Chapter07DrawWidget
  file = FILEPATH('worldelv.dat', SUBDIRECTORY = ['examples', 'data'])
  imageSize = [360, 360]
  image = READ_BINARY(file, DATA_DIMS = imageSize)
  topLevelBase = WIDGET_BASE(/COLUMN)
  imageDraw = WIDGET_DRAW(topLevelBase, /BUTTON_EVENTS, XSIZE = imageSize[0], $
    YSIZE = imageSize[1], EVENT_PRO = 'CDE_DrawEvents', UNAME = 'imageDisplay')
  contextBase = WIDGET_BASE(topLevelBase, /CONTEXT_MENU, UNAME = 'drawContext')
  loadCTButton = WIDGET_BUTTON(contextBase, VALUE = 'XLOADCT', $
    EVENT_PRO = 'CDE_LoadCTEvent')
  paletteButton = WIDGET_BUTTON(contextBase, VALUE = 'XPALETTE', $
    EVENT_PRO = 'CDE_PaletteEvent')
  doneButton = WIDGET_BUTTON(contextBase, VALUE = 'Done', $
    /SEPARATOR, EVENT_PRO = 'CDE_DoneEvent')
  WIDGET_CONTROL, topLevelBase, /REALIZE
  WIDGET_CONTROL, topLevelBase, SET_UVALUE = image
  WIDGET_CONTROL, imageDraw, GET_VALUE = windowDraw
  WSET, windowDraw
  DEVICE, DECOMPOSED = 0
  LOADCT, 5
  TV, image
  column = imageSize[0]/2
  row = imageSize[1]/2
  TVCRS, column, row
  XMANAGER, 'Chapter07DrawWidget', topLevelBase, /NO_BLOCK
END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -