前言

写了多年的LabVIEW程序,你是否面临这样的问题

总是在做一些重复的工作,感觉很没有意思;
总在不停的写代码,做类似的控件,实现相同的功能,丝毫没有成就感;
总在天加班,没有时间去提高自己;

你也知道简单的重复并不能带来效率的提高,却不知道走向何方,无奈而又焦急着?

小黑今天带你聊一聊LabVIEW吸星大法,让你在工作中越来越有效率,体会一切皆可掌控的妙感~

记住,我们的口号是 : 告别重复造车,你的就是我的,万物皆为我所用~

正文

学习LabVIEW是在初期是一个很吸引人的事情,它让你在极其短暂的时间内既能熟悉软件,也可以了解硬件。较短的学习周期,快速的培养人手,无论是作为学生还是项目型的公司,它都是快速产生价值的一个选择。

然而,像传统武学一样,凡是入门快的功夫都很难提高。过于花哨的招式脱离了稳扎稳打的内功,只能沦为高不成低不就的工具。

LabVIEW使用者通过一个月左右的学习就能介入小项目,却在一到两年左右的时候就会陷入瓶颈,如果没有看到更远的方向,将很长时间内停留于某一阶段。

今天小黑带你开一扇们,让你在迷茫期可以迅速的积淀自己的实力,等到机会来的时候,可以快速的实现自己的目标。

不废话啦,今天给大家讲解的就是UI Control的个性化自定义,兼容并济,吸收各家所长。

什么是UI Control的个性化

一个软件极致便是高度的自定义化,LabVIEW对自定义的支持使得其成为了一个平台,吸收着各个厂商为其定义的软硬件驱动。而作为一个程序员,如果不能利用其高度可定义的环境,其编程将会不停的沦为重复造车的过程。

使用UI Control的个性化,将你欣赏的,喜欢的控件,全部集成到LabVIEW去。每个人都将有一套属于自己的设计库,这个设计库是个人经验+工作经验的集合,能让在遇到复用情境时,可以快速的使用原有积累,避免重复造车。

UI Control的个性化到什么程度

为了让大家了解到UI Control的个性化程序,小黑将自己的控件选板贴图如下。该选板名称为Elton Ctrl(其中Elton是小黑的英文名字,所以这个选板就是小黑专属选板~),其设计思想包括以下几点:

1. 该选板以系统控件为基准,便于在不同的操作系统中建立统一控件风格,即所有设计的软件统一风格,保持团队或者个人风格的一致


2. 该选板在系统控件的基础上,增加自定义内容,增强系统控件功能,其中浅绿色部分是我的控件修改部分,实现了功能增强

3. 该选板集成Quick Drop控件群,可以实现相似控件一键放置,并集成UI Suite,对整体布局控件批量放置
 4. 该选板集成额外的控件,在遇到好的控件时,都可以快速添加到自己的选板中

如何添加属于自己的控件

接下来,我进一步讲解其设计过程,如果你有心,也可以建立属于自己的控件库,吸收各家所长,实现下图所示的控件群。

  • 吸星大法之素材搜集

如果你找不到好看的控件,天天看到的都是LabVIEW自带控件,那么基本上告别自定义的开始。控件的自定义收集主要来源于三点:
1. 从别人的程序中吸收,尤其是UI界面做的漂亮的程序

如果学习LabVIEW程序设计有一定时间,那你一定收集了不少程序,把别人程序中好看的控件保存下来吧,将来总会用的上。关于如何制定控件,如何收集等基础内容就不再这里赘述了,大家可以自行百度。

2. 找到现成的控件包,拷贝到自己的目录下,将他人的内容内化为自己的
现成的控件包也比较容易获得,主要来源于VIPM和NI相关的论坛上,比如下图所示的就是VIPM中的控件

 或者从NI Community中直接搜索,里面也有不少控件下载包
 

3. 从专业的Icon网站上下载素材,可以搜集一些常用的素材下载网站,用于快速设计相同风格的控件
这里推荐 easyicon ,免费的,非常好用

  • 吸星大法之素材整理

本文为了考虑到初学者,将控件放置于用户收藏目录下,待后续高级教程讲解如何进行高级自定义。
搜集到的控件放在哪里呢? 如果不对控件的素材整理,收集到的东西基本上不会打开第二次,这里推荐大家在刚开始搜集的时候,将控件放置于user.lib下
当控件放置于该目录下后,重启LabVIEW,将自动识别放置的控件
为了保证收集有效,注意分门别类放置,规划好自己的控件目录层级
 设计好看的图标,一个漂亮的图标可以让你更愿意使用自己搜集的控件。在Tools-->Advance--->Edit Palette Setting中,可以配置文件夹的图标
如下图所示即可编辑图标选板

后记

LabVIEW吸星大法,将你喜欢的控件全部做成自己的,悉心整理归档,你将有丰富的软件积累,不必每一次都重走前人之路。

控件设计还有很多很多的注意项,这里我只是抛砖引玉,让大家植入复用的概念,建立属于自己的知识宝库,为后续的文章做一些铺垫。

如果本文对你有收获或有所感触,真心希望你能真正去尝试尝试,体会一下积累的价值,告别盲目的加班,学习成长之路,互帮互助~

术业有专攻,闻道有先后,在知识大门前,我们可以略窥一二,却不知天外有天,人外有人。保持一颗谦逊的心,专注于技术的提高,精益求精~
 
-----谨以此文献给落入LabVIEW坑却仍不放弃的各位,我们不是专业的软件工程师,却有一颗上进的心。
 
 
 
 
 




LabVIEW 吸星大法 - 看见的好东西都是我的(上篇)的更多相关文章

  1. LabVIEW 吸星大法 - 看见的好东西都是我的(下篇)

    前言 写了多年的LabVIEW程序,你是否面临这样的问题 总是在做一些重复的工作,感觉很没有意思: 总在不停的写代码,做类似的控件,实现相同的功能,丝毫没有成就感: 总在天加班,没有时间去提高自己; ...

  2. LabVIEW 吸星大法 - 看见的好东西都是我的(中篇)

    前言 写了多年的LabVIEW程序,你是否面临这样的问题 总是在做一些重复的工作,感觉很没有意思: 总在不停的写代码,做类似的控件,实现相同的功能,丝毫没有成就感: 总在天加班,没有时间去提高自己; ...

  3. 低耦合高内聚 - 不要把所有东西都放在 vuex中

    我就举一个例子.比如,我想看电视,是否需要遥控器??请认真思考这个问题. 看似电视与“我”已经解耦了.然而,我需要通过遥控器去看电视,我的目的是看电视,但是我却需要依赖遥控器这个中间件.这就变相地将“ ...

  4. 从Hello World说起(Dart)到“几乎所有东西都是Widget”小部件。

    import 'package:flutter/material.dart'; void main() => runApp(new MyApp()); class MyApp extends S ...

  5. 用LabVIEW实现《家国梦》游戏中自动收货收金币

    前几周,很流行一个手机游戏,叫<家国梦>.我在手机上玩了一两天后,发现了两个问题: 1. 收货收金币太没意思,只需要手指滑在固定的路线,一会儿就烦了 2. 怎么追赶也追不上手快的人(当然也 ...

  6. 关于Unicode,字符集,字符编码,每个程序员都应该知道的事

    关于Unicode,字符集,字符编码,每个程序员都应该知道的事 作者:Jack47 李笑来的文章如何判断一个人是否聪明?中提到: 必要.清晰.且准确的概念,是一切思考的基石.所谓思考,很大程度上,就是 ...

  7. 重置了下系统好多关于mysql密码的文章都很渣拷分好的备用

    方法1: 用SET PASSWORD命令 mysql -u root mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass ...

  8. 输入URL之后都发生了什么

    输入URL之后都发生了什么 这个标题印象中已经有很多讨论了.也来说说这个话题. 从头开始,当你的电脑使用网线连接到网络的时候,我们都知道,这个时候你的电脑会获取一个IP,这个IP就是你的唯一标识了.好 ...

  9. LabVIEW有限状态机

    顺序模式是我们最先接触,也是最基本的一种编程模式, 程序按照固定的顺序依次执行,结束(如图1) 但在很多情况下,静态的顺序模式并不能满足我们编程的要求,我们需要更有效地动态结构来实时改变程序的执行顺序 ...

随机推荐

  1. tornado 异步调用系统命令和非阻塞线程池

    项目中异步调用 ping 和 nmap 实现对目标 ip 和所在网关的探测 Subprocess.STREAM 不用担心进程返回数据过大造成的死锁, Subprocess.PIPE 会有这个问题. i ...

  2. C/C++: C++位域和内存对齐问题

    1. 位域: 1. 在C中,位域可以写成这样(注:位域的数据类型一律用无符号的,纪律性). struct bitmap { unsigned a : ; unsigned b : ; unsigned ...

  3. SQL中循环和条件语句

    .if语句使用示例: declare @a int begin print @a end else begin print 'no' end .while语句使用示例: declare @i int ...

  4. java写RelativeLayout 的属性

    有时项目需要动态的调整一下布局,需要改变一些view的位置属性等等. 直接下代码 RelativeLayout.LayoutParams params=new RelativeLayout.Layou ...

  5. spring自动扫描、DispatcherServlet初始化流程、spring控制器Controller 过程剖析

    spring自动扫描1.自动扫描解析器ComponentScanBeanDefinitionParser,从doScan开始扫描解析指定包路径下的类注解信息并注册到工厂容器中. 2.进入后findCa ...

  6. [Python数据分析]新股破板买入,赚钱几率如何?

    这是本人一直比较好奇的问题,网上没搜到,最近在看python数据分析,正好自己动手做一下试试.作者对于python是零基础,需要从头学起. 在写本文时,作者也没有完成这个小分析目标,边学边做吧. == ...

  7. ASN.1 key structures in DER and PEM

    转自:https://tls.mbed.org/kb/cryptography/asn1-key-structures-in-der-and-pem Introduction Everybody lo ...

  8. 11.Object方法

    综述 Object是Java中所有类的父类,对它的学习十分的重要, Object的函数除了final方法,基本上都是被设计为要被覆盖的(Override),这节我们就一起来学习这些函数. 1.equa ...

  9. 用python DIY一个图片转pdf工具并打包成exe

    最近因为想要看漫画,无奈下载的漫画是jpg的格式,网上的转换器还没一个好用的,于是乎就打算用python自己DIY一下: 这里主要用了reportlab.开始打算随便写几行,结果为若干坑纠结了挺久,于 ...

  10. Android 登录界面与首页的设计

    全屏效果 //取消标题,取消状态栏 this.requestWindowFeature(Window.FEATURE_NO_TITLE); this.getWindow().setFlags(Wind ...