IDL

IDL 8.5中的颜色选择对话框

0
分享 2016-06-16
看到某位QQ好友(IDL高手)的状态改成了"苍天啊,IDL终于有颜色选择组件了"。然后我就知道该推广下了,应该有人会有这个需求。当然,这是IDL 8.5新增的功能,所以…

有人看到这里可能就准备接受现实了,但是我们这次相对来说是一个好消息,因为IDL提供了此功能的源代码,所以IDL 8.4同样可以使用,需要进行简单的配置即可。但是因为源代码中用到了很多IDL的新特性(如变量的静态属性和静态方法、ISA的Number关键字等),所以低版本如果想使用此功能,需要更改的地方太多了太多了太多了,我尝试了下,最终放弃了。有兴趣的可以尝试下。

闲言碎语不要讲,表一表IDL 8.5中的颜色选择对话框的使用方法。

调用格式


简单介绍下关键字的含义(所有关键字均为可选关键字):


示例代码
示例1:最简单调用方法


运行效果如下图所示,可以选择Standard和Custom两种颜色模式。当选中某一个颜色时,返回color变量即为对应的R、G、B的值;如果单击关闭按钮,则返回0值。

图:颜色选择对话框
示例2:修改大小、行列数

图:修改大小、行列号
示例3:自定义默认颜色

IDL中提供了几十个自带颜色表,我们可以使用其中的颜色设定。代码如下:




图:自定义默认颜色
示例4:添加首选、自定义颜色
首选和自定义颜色分别对应PREFERRED_COLORS 和CUSTOM_COLORS关键字,分别对应PREFERRED_TITLE 和CUSTOM_TITLE关键字可以设置标题,这里不再演示。

示例代码如下:



运行效果如下图所示。
注:Preferred Colors中的颜色与PREFERRED_COLORS关键字中提供数组顺序一致;而Custom Colors中的颜色与CUSTOM_COLORS关键字中提供数组顺序相反。
图:添加首选和自定义颜色
示例5:综合应用

除了以上直接以函数方式调用之外,还可以在用户界面中使用此组件。



运行效果如下图所示,单击Select Color按钮,弹出下方的颜色选择组件,选择后自动在按钮右侧绘图窗口显示所选颜色,并在后边的标签中显示对应的R、G、B值。
如果选择的是Custom选项卡中的颜色,会自动记录颜色,并在Standard下方的Custom Colors中显示历史记录。


图:用户界面中的颜色选择组件

IDL8.4使用颜色选择对话框的方法

IDL 8.5提供了此功能的源代码,但是不能直接调用,需要做一些小的修改。比如,需要自定义一个系统变量!magic,需要另外两个图标文件等等。

源代码和图标文件下载地址http://pan.baidu.com/s/1i36LmAx
注:此源代码经过简单修改(第712~715行为新增内容,自定义系统变量)

使用方法:
  1. 将压缩包内的 dialog_colorpicker.pro文件拷贝到IDL8.4安装路径: C:\Program Files\Exelis\IDL84\lib\utilities\
  2. 将压缩包内的 arrow_pick_up.png和 arrow_pick_down.png文件拷贝到路径: C:\Program Files\Exelis\IDL84\resource\bitmaps\
  3. 重启IDL 8.4即可使用。 注:本人是在8.4.1版本下测试的,如果8.4运行有问题,欢迎发邮件说明。谢谢。

文章来源:http://blog.sina.com.cn/s/blog_764b1e9d0102wkpu.html

0 个评论

要回复文章请先登录注册