前言

写了多年的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. tp5 中 model 的获取器

    在获取数据的字段值后自动进行处理 // 模型中写入如下代码,则查询结果会自动将status的结果进行转换 class User extends Model { public function getS ...

  2. JS中定义对象原型的两种使用方法

    第一种: function Person() { this.username = new Array(); this.password = "123"; } Person.prot ...

  3. Swift - 键盘弹起,遮挡输入框

    extension LoginViewController:UITextFieldDelegate { func textFieldShouldReturn(textField: UITextFiel ...

  4. 卡拉OK效果的实现-iOS音乐播放器

    自己编写的音乐播放器偶然用到这个模块,发现没有思路,而且上网搜了搜,关于这方面的文章不是很多,没找到满意的结果,然后自己也是想了想,最终实现了这种效果,想通了发现其实很简单. 直接上原理: 第一种: ...

  5. .net学习笔记---tcp/udp/http/socket

    什么是TCP和UDP,以及二者区别是什么? TCP的全称为传输控制协议.这种协议可以提供面向连接的.可靠的.点到点的通信. UDP全称为用户数据报协议,它可以提供非连接的不可靠的点到多点的通信. 使用 ...

  6. 防止sql注入和sqlmap介绍

    sql注入问题从WEB诞生到现在也一直没停过,各种大小公司都出现过sql注入问题,导致被拖库,然后存在社工库撞库等一系列影响. 防止sql注入个人理解最主要的就一点,那就是变量全部参数化,能根本的解决 ...

  7. [转]js实现各种进制的转换

    关键点: parseInt(string, radix).toString(target_radix); 参考:http://www.cnblogs.com/guowei1027/archive/20 ...

  8. 安装HBase

    安装HBase 1.默认已经安装好java+hadoop+zookeeper 2.下载对应版本的HBase 3.解压安装包 tar zxvf hbase-1.0.2-bin.tar.gz 4.配置环境 ...

  9. SQL 语句与性能之执行顺序

    select * , t3.Name from t1 left join t2 on t1.sysno = t2.Asysno left join t3 on t3.sysno = t2.Bsysno ...

  10. Python中的生成器与yield

    对于python中的yield有些疑惑,然后在StackOverflow上看到了一篇回答,所以搬运过来了,英文好的直接看原文吧. 可迭代对象 当你创建一个列表的时候,你可以一个接一个地读取其中的项.一 ...