matlab gui学习手记 pdf_与MATLAB颜色设置斗智斗勇的那些年

前阵子,知识星球里有一位叫“π大星”的朋友交了两份GUI实战训练的报告。其中有一部分文字是关于GUI按钮的背景颜色设置,我觉得还蛮有意思的。

所以今天打算分享一下为什么我觉得这份报告有意思,顺带着聊一聊这些年我是如何与颜色斗智斗勇的。

01

用MATLAB已经有十多年了,不过开始对颜色有些挑剔还是最近几年的事。

最开始的几年,颜色设置的问题,无非就是plot曲线的时候,这应该是每个MATLAB用户都会碰到的情况。

这个问题很好解决,在网上很快就能找到答案。对于初学MATLAB的朋友,这里我推荐两份文档。

一份是MATLAB中文论坛的一篇帖子,主题是“Matlab中plot函数一共能调用多少种颜色?”。这篇帖子截止目前已经有将近35万的阅读量,足以见得有非常多朋友搜索过这个问题。

另一份是MATLAB Help自带的介绍,通过命令窗口输入doc plot就可以了解这方面的应用,还有相应的例子可以用来加深理解。

回到颜色设置这个问题上来,通过plot([1,2],[3,4],'r')就能将目标曲线设置成红色,其中'r'是红色的缩写。

除此之外,还有

绿-g

蓝-b

蓝绿-c

紫红-m

黄-y

黑-k

白-w

02

通过字母设置颜色这种方法,比较便捷,不过存在的问题是,颜色数量较少,并且个别颜色我实在欣赏不来,比如那发着光的黄和绿。

虽然心有不满,但是平时还是尽量避免多条曲线画在一张图上,于是在之后的很长一段时间内,只靠着红色和蓝色,咬咬牙,这么多年也就过来了,直到后来开始做GUI工具。

创建GUI,界面默认的背景是灰色,有一阵子,我很不喜欢这个背景颜色,总想换成白色。后来实在受不了了,就上网查,发现可以通过RGB数值去定义界面的颜色,比如设置窗体为白色

figure('Color',[1,1,1])

RGB颜色定义的方式,适用在任何颜色定义的问题上,包括plot曲线的,画图注释text的颜色定义等等,具体的用法,在前面推荐的两个文档中也都有介绍。

至于RGB如何定义数值实现想要的颜色,网上有不少材料,通过搜索关键词MATLAB+颜色表。

bd46e482fe8965495105d49209812420.png

事实上,这张表很长,远不止我截取的部分。

颜色表的优点是,很全,几乎任何颜色应有尽有,而颜色表的缺点也是,太多了,多到让我难以选择。

上次碰到颜色选择障碍,还是给媳妇买口红的时候,口红看起来都红的差不多啊。

03

人总是这么矛盾,字母设置颜色,嫌8种颜色太少,RGB设置颜色,嫌颜色表太长。

其实保留几种比较常用的颜色RGB值就可以应对平时工作学习中的需求。

再后来就是这两年的事了。

在过去写一个GUI,只要需求明确了,几乎可以每两天写一个工具。

这些工具只是给自己用的,所以控件的布局,也都只是控件+String的形式,哪管他颜色、图标和快捷键,甚至好多比较严重的Bug都不在意,心里清楚哪哪有坑,别去踩就行。

不过这两年,偶尔会分享一些自己写的GUI给大家使用。

字如其人,GUI也同样如此,于是我要比之前多花上3倍的时间去修复Bug,优化界面,提高用户友好度。审美在不在线另说,做GUI我一点也不随便。

曾经介绍过我在开发HaoFind的时候,设计了一个开机界面,是参考的Google的Logo。

8b2545ea50a827694b2d2b682b3a4a29.png

这下我再没办法去拿着颜色表和Logo的颜色做对比了,于是我给自己写了一个提取颜色RGB值的工具,叫做HaoColor。

很高兴,Hao系列的小工具又迎来了一位新成员。

HaoColor的使用很简单,点击Get Color的按钮之后,将鼠标移到目标颜色上,3秒之后将会显示目标颜色的RGB值。

f9389104899ce33a8a4adf3c34d89a83.gif

其中有一个很贴心的功能是,RGB值在显示的同时,已经复制了,不需要再去做额外的复制操作,可以直接在m脚本中进行粘贴。

这个功能其实在HaoTemplate工具中就已经使用了。

8dafca14ecb527ed144339a86b8158bd.gif

当时在HaoTemplate发布后,有朋友留言说,这么多色块,得做多少个按钮啊。

其实我在写这个工具的时候,就已经意识到这个问题了,所以我一个按钮都没做,直接放了一张Excel颜色表上去,用鼠标去读取颜色。

读取颜色的功能也很容易实现,用的是MATLAB截屏的功能,只截取鼠标所在的一个像素的图片,读取颜色数值。

04

前面聊的是这些年来我是如何处理颜色设置这个问题的。接下来聊一聊“π大星”的报告。

GUI实战的第二次练习是复现windows的科学计算器,其中一个要求是,按钮颜色的设置。

这位朋友的处理方式是,通过uisetcolor这个命令,调出MATLAB自带的调色板,选取所需的颜色,返回RGB的值。这个命令同样可以集成在GUI中,进行颜色的选取。

7e7d67ee12d745f9201edf769441b119.gif

如果只是从功能上来说,我个人认为,HaoColor的功能会比自带的调色板稍强一些,颜色选取的自由度更大。

不过我觉得很有意思的地方,一个是调色板对话框中控件的弧度设置,这是接下来一段时间我很想去研究的。

7995352265089e3a62ae925c752e50bc.png

另一个有意思的是,在uisetcolor所在的文件夹,发现了不少其他有趣的功能,比如字体的设置

5dd2c51ddac1a9e6034ac489fd58c2db.png

除此之外还有很多其他工具,像之前一直使用的选取文件功能uigetfile,也在这个文件夹中。

由于之前只关注到自己要开发的GUI,忽略了这个文件夹中的其他有意思的功能,这也是在接下来一段时间想要去了解的,并且希望能够运用到以往的工具中去。

以上就是今天关于MATLAB颜色设置的分享,希望对大家有所帮助

最后关于HaoColor,有需要的朋友,可以在公众号后台回复“HaoColor”获取这个工具。

作者介绍: 打浦桥程序员,汽车行业工程师,目前在德国从事系统工程。公众号“打浦桥程序员”,和你一起用MATLAB的角度看世界

00de54cb27ac04f76c8b1ad2b5f74918.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值