读《我和Labview》6用户自定义控件

6.1枚举Enum

枚举类型:枚举是指列出一个有限数据集合的所有成员,比如"星期"是一个枚举类型,星期日-星期六则是这个枚举里面的7个条目。编程语言中,通常使用一段连续的非负整数来代表枚举类型中的每个成员,比如用0代表星期日,1代表星期1等等。有些编程语言也允许使用字符串数据来代表枚举类型

Labview中的枚举类型定义是狭义的,它的数值必须是一段从0开始的连续非负整数

6.1.1枚举型控件与下拉列表控件的比较

枚举类型控件Enum和下拉列表Ring控件有很大的区别:
Enum and Ring
在程序中,表示有限的几种物件,几个状态等含义时,应尽量使用枚举控件而不是下拉列表。通过书中上面的对比,可以发现枚举控件的数据类型更加严格,可以防止程序中的某些错误。

并且这样的数据在程序中通常会与选择结构相连,以对不同状态类别等进行分别处理。枚举控件能够让条件结构按照条目标签来选择分支,可以增加程序的可读性和可维护性。

当程序要表示的依然是一个数值,只不过需要把用户的输入限定在某几个特定值时,应当用下拉列表控件

例子:
编写一段程序,用于模拟一台示波器,它有三种触发模式:边沿触发,脉宽触发和斜率触发,表示三种不同状态,此时应该选用枚举型的控件表示触发模式;示波器的可显示波形幅值范围有三档分别是:0.1V、0.25V和1V,离散型的数值,应该使用下拉列表

6.1.2单选按钮控件

除了下拉式的枚举型控件外,Labview中单选按钮控件Radio Buttons的数据类型也是枚举型的,单选按钮在外观上与下拉式枚举控件不同,由一组布尔型控件组成(可以根据需要选择改变选项的外观,以及设置一定数量的选项)在一组控件中,每次只能有一个值为真

6.1.3创建和使用一个枚举控件

例子ABC team sub
子VI
zidingyikongjian6-1-3-1.png
主VI三只队伍参加比赛,分别处理数据,用两个VI来完成
zidingyikongjian6-1-3-2.png
但是如果项目出现改动,如teamA改名为teamD了,在主VI里改完Items后,再运行VI发现会报错,因为子VI里面没有修改。这样只两个容易修改,但是在大项目中,同样的枚举控件被用在数十个子VI中时,逐一修改太过繁琐了
可以使用用户自定义控件,来关联相同数据类型的控件,修改一处,自动更新

6.2用户自定义控件

某些项目中有后缀为.ctl的文件,就是用户自定义控件。打开一个用户自定义控件,可以看到有三种定义的形式:输入控件Control、自定义类型Type Def.和严格自定义类型Strict Type def.前者一般用于定义控件外观,后两者用于定义控件的数据类型

zidingyikongjian6-2.png

6.2.1创建一个自定义控件

创建自定义控件有两种方法

  • 1.Labview主菜单界面->文件 -> 新建 -> 自定义控件
    这样创建出一个空白的.ctl文件,在这个文件界面添加一个Labview的自带控件,再进行修改

zidingyikongjian6-2-1-1.png

  • 2.在一个VI中,放置一个按钮自带的按钮控件,选中这个控件->右键菜单->高级->自定义
    这样新建了一个这一控件的.ctl 文件

zidingyikongjian6-2-1-2.png

.ctl文件的界面与VI前面板看起来非常相似。在它的界面只允许一个控件,缺少控件或超过一个会报错。可以放置很多装饰图形或标签文字,没有程序框图,只能定义控件的外观或数据类型,不能定义控件的行为。


下文请跳转书中本节内容自定义控件

6.2.2自定义控件的组成部分

6.2.3修改控件的组成部分

6.2.4简单动画

6.2.5自定义类型

6.2.6严格自定义类型

posted @   Ananke_Sheqk  阅读(263)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示