读《我和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
主VI三只队伍参加比赛,分别处理数据,用两个VI来完成
但是如果项目出现改动,如teamA改名为teamD了,在主VI里改完Items后,再运行VI发现会报错,因为子VI里面没有修改。这样只两个容易修改,但是在大项目中,同样的枚举控件被用在数十个子VI中时,逐一修改太过繁琐了
可以使用用户自定义控件,来关联相同数据类型的控件,修改一处,自动更新
6.2用户自定义控件
某些项目中有后缀为.ctl的文件,就是用户自定义控件。打开一个用户自定义控件,可以看到有三种定义的形式:输入控件Control、自定义类型Type Def.和严格自定义类型Strict Type def.前者一般用于定义控件外观,后两者用于定义控件的数据类型
6.2.1创建一个自定义控件
创建自定义控件有两种方法
- 1.Labview主菜单界面->文件 -> 新建 -> 自定义控件
这样创建出一个空白的.ctl
文件,在这个文件界面添加一个Labview的自带控件,再进行修改
- 2.在一个VI中,放置一个按钮自带的按钮控件,选中这个控件->右键菜单->高级->自定义
这样新建了一个这一控件的.ctl 文件
.ctl文件的界面与VI前面板看起来非常相似。在它的界面只允许一个控件,缺少控件或超过一个会报错。可以放置很多装饰图形或标签文字,没有程序框图,只能定义控件的外观或数据类型,不能定义控件的行为。
下文请跳转书中本节内容自定义控件
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?