LabVIEW_Tree_Control使用说明
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图 2 改变 Tree 控件的显示外观
(2) 在 Visible Items 中有一个 Symbols 菜单项,从外观上看勾选或不勾选该选项没有什么区 别。原来,LabVIEW 允许对 Tree 中的每一行指定一个符号,显示在行首。要显示该符 号首先需要勾选 Visible Items→Symbols 选项,其次在某一行上右击弹出的快捷菜单上 选择 Item Symbol 菜单项,并选择一个符号。如图 3 所示。LabVIEW 提供了 42 种符号 可供选择,其中第 1 种为空(默认值,因此前面在勾选 Visible Items→Symbols 后看不 到变化) 。可以通过该方式为每一行添加各种不同的符号。
一.控件简介
LabVIEW 的 Tree Control 控件以树型结构显示信息,每个节点带细节描述列。可以显 示该节点的其它信息。如下图所示
图 1 . 控件外观
二.控件的常用属性、方法、事件
控件的常用属性、方法、事件可以很方便的从 LabVIEW 的帮助或者编写简单的 Demo 获取,这里就不再赘述。 只是有一点需要注意, 控件属性结构上显示的字符是控件的 Left Cell String, 可以重复, 再控件内部管理这些节点是用 Tag 属性,该属性为字符串类型,不可重复,如果增加节点时 不设置该属性,LabVIEW 会默认将 Left Cell String 作为 Tag,遇到重复的情况以”下划线加 数字”区分。如“张三_1” 。在控件的方法、事件中获取到节点值都是控件的 Tag。
引用 Tree 控件的使用
labview 2010-07-03 01:22:17 阅读 90 评论 0 字号:大中小 订阅
引用
statemice 的 Tree 控件的使用
本节将重点讨论 LabVIEW 中的 Tree 控件,也许是控件本身的使用比较“麻烦”,导 致很多程序员不愿意使用该控件。其实在大多数的应用程序中均可以看到 Tree 的身影,如 Windows 操作系统中的“资源管理器”左侧的文件列表,通常 Tree 控件可以用来显示一些 有组织的、分类明确的数据。
3.源自文库 节点的移动
LabVIEW 的树型结构控件节点的界面拖拽代码不需要设计者编写,只需要设置 Allow Draging ,Allow Draging of Parant Items ,Allow Draging Between Items 属性即可。 如果在运行时需要由程序移动节点,使用方法 Move Item 即可
图 4 改变 Tree 控件的层次关系
(4) 那么 LabVIEW 究竟如果把 Tree 控件上显示的诸多字符串表示在底层函数面板中呢? 我们可以尝试使用一个 String 显示件验证 Tree 控件的输出,其前面板和背面板如图 5 所示。运行该 VI,并且选择 Tree 的不同行(随着选择的不同,被选中的行会以蓝色高 亮显示,比如图中的第 3 行) ,观察 String 显示件中的值。可以得到 Tree 控件的输出好 像是每一行的首列字符串 , 但是第 4 行的输出却是 A_1 , 这是一个从来没有输入过的值 。
3.7
Tree Control 界面显示内容操作
前面提到了该控件内部管理树是通过 Tag 管理,界面显示与 Tag 无关,Tree Control 管理 界面显示的内容类似 Grid,每一个格子为一个单元,可以设置其属性,也可读出值。
3.7.1 读取 left Cell String 或 Child Text 的值
程序中要展开,收合节点使用 Open/Close 方法
3.4 获取当前用户选中的节点
要获知当前用户选中的节点需要使用该控件的事件(ValueChange)
其中 NewVal 是当前选中节点的 Tag,OldVal 是前一次选中节点的 Tag
3.5 节点的查找
LabVIEW Tree Control 提供节点的查找方法有 获取父节点的第一个孩子节点 Get Child 获取节点同一层次的下一个节点 Get Next 获取节点的父节点 Get Parent 获取当前节点从上之下的父子节点关系,从 顶节点开始, 到目标节点的所有父系节点 (包 括当前节点) ,结果放于字符串数组中
图 5 测试 Tree 控件的输出字符串
选择 Tree 右键快捷菜单中的 Edit Item…菜单项,将弹出如图 6 所示的对话框。对话框 的左侧是 Tree 控件显示的内容,改变控件的选择,可以看出右侧的 Tag 会随之改变,并且 第 4 行的 Tag 值正好是 A_1。原来 Tree 控件为每一行自动分配了一个唯一的 Tag 值(该值 可以在 Edit Item 对话框中修改,但是必须确保唯一性和非空性) ,其输出则是当前选中行的 Tag 值。我们可以尝试将第 4 行的 Tag 值强行修改为 A,此时 LabVIEW 将会以红色背景显 示 Tag 值,表示该 Tag 值重复,无法正常使用(也就是说 Tree 控件中每一行的 Tag 值必须 是唯一并且非空的) 。
1.1
编辑 Tree 控件的外观
Tree 控件位于 LV 的控件选板“List&Table”子选板中,如图 1 所示。从背面板可以看 出 Tree 实质上是一种字符串(String)类型,这难免会让人费解:如何将前面板大量的“条 理性的数据”与 String 对应呢?
图 1 Tree 控件
选择工具选板中的 Edit Text 工具,可以直接在 Tree 控件中输入数据。 (1) 通过 Tree 控件的右键快捷菜单 Visible Items 菜单项,可以改变 Tree 控件的显示外观, 如图 2 所示。可以逐一勾选/不勾选该菜单项中的菜单,就明确了各个菜单项对应的含 义。
LabVIEW Tree Control 使用说明
一.控件简介................................................................................................................................... 1 二.控件的常用属性、方法、事件 ............................................................................................... 2 三.常见操作的实现方法............................................................................................................... 2 3.1 增加节点 ............................................................................................................................ 2 3.2 删除节点 ............................................................................................................................ 2 3.3 节点的移动 ........................................................................................................................ 3 3.4 获取当前用户选中的节点 ................................................................................................ 3 3.5 节点的查找 ........................................................................................................................ 3 3.6 节点的遍历 ........................................................................................................................ 4 3.7 Tree Control 界面显示内容操作 ..................................................................................... 4 3.7.1 读取 left Cell String 或 Child Text 的值 .................................................................. 4 3.7.2 修给某 Item 的值 .................................................................................................... 4 3.8 控件内容运行时修改 ........................................................................................................ 4
三.常见操作的实现方法
3.1 增加节点
使用控件的 Add Item 方法,如图所示:
如果只是增加一个节点作为树的最后一个节点,可以使用 Add Item To End 方法。
3.2 删除节点
使用控件的 delete Item 方法
Delete children 代表删除父节点是否要删除子节点。如果不删除子节点,子节点将往上 移动一层替代原父节点的位置。如果该节点没有子节点而要求删除,将会产生错误。所以删 除时最好先检测是否有子节点
图 3 选择 Symbol
(3) 在 Windows 资源管理器中,我们可以看到 Tree 是能够显示层级关系的。这一点可以通 过选择右键快捷菜单中的 Indent Item 和 Outdent Item 实现 ,在第图中的 3 行上右击选择 Indent Item,则第 3 行变成了第 2 行的子行,如图 4 所示。此时,LabVIEW 会自动添 加一个“+”或“—”符号,如同 Windows 资源管理器中显示的一样。程序员可以通过 选择快捷菜单中的 Expand/Contract Symbol Type 选项来改变该符号的显示样式。
Get Path
3.6 节点的遍历
看了节点的查找方法后,我们不禁要问,难道我要全面遍历节点需要通过这些方法来编 写复杂的遍历代码吗?答案是否定的。Tree Control 有个属性是 Display Items ,按照先序遍历 顺序将所有节点的 Tag 存储在字符数组中, 相当于 delphi Tree Control 的 Items。 可以通过对 数组的遍历实现对树节点的全面访问。
网站上 LabVIEW 官方的说法是我们目前使用的包是 Base Package 。 而要进行这项操作 需要 Full Package ,或 Professional package 支持。可以通过 http://ohm.ni.com/advisors/ua?stayput=true 在线升级, 目前该项功能我还在尝试。不过可能稍 显麻烦,网站上升级问我要 RMB ,如果项目中不需要用户在树型控件中输入就不升级了。
3.7.2 修给某 Item 的值
如果修改 Item 的 Tag, 可以使用方法节点 Set Tag, 如果修改 Left Cell String 或者 Child Text 方法有二: 方法一:将该 Item 删除再添加。 方法二:仿照 3.7.1
3.8 控件内容运行时修改
我们不难发现,该控件可以在设计时修改值,再进行增加节点,填入节点内容等等操 作,但是当程序运行时却不能由用户修改 Cell 里的值。也就是不具备输入功能。
使用两个属性节点, 首先将要读取的格子置为 Active (使用 Active Item Properties 和 Active Cell Properties) ,再读取 Active Cell String 即可。
附注:恶劣的设计,大大方方地给它一个数组产生的 Child Text 这么卑劣地还给我。