同步更新于 WeChat:荣小菜在补钙 大家好,我是荣小菜,也可以叫我Richie,今天分享一个简易的表格操作Demo,内涵多种功能和一些小技巧,希望对大家有所帮助。 1. 背景 表格可以说是大家最常用的东西了,它是数据呈现的一种很好的方式。而Excel可以说是当之无愧的表格之王,它的操作简单、快捷,是大家最常用的表格处理软件之一。因此,若是我们能在LabVIEW中将必要数据以表格的形式呈现给用户,并使用户可以像Excel那样对表格进行增删改查,将极大提升用户体验。当然,若是还能根据不同场景“定制”表格操作,那么,嘿嘿^_^
LabVIEW直接为我们提供了“表格”控件,并附带了丰富的属性和方法。灵活的使用它们就可以为表格增添各种强大的功能,下面开始讲解Demo。 2. Demo:列宽自适应 在LabVIEW使用表格控件最“为难”的一点就是列宽的问题了,数据一长就会被挡住,极大影响可视性,导致我们总在“手动优化”表格宽度。。。。。。因此需要表格能够“自适应列宽”。Demo如下,表格每列的宽度由该列的“列首”和“列内容”的最大宽度决定,自动适应调整大小。
列首对列宽的影响
列内容对列宽的影响 自适应的方法网上也有很多了,程序如下,我这里做了下微调,将列首也包含进去,这样适应性就更好了。
3. Demo:Insert与Delete操作 LabVIEW中,表格右键菜单提供了一些基础的行列操作,但这其实远不能满足需求,我们需要“定制”一些功能,Demo如下,给表格增加了通过键盘进行Insert和Delete操作的功能,可任意删除选中区域内容,还可根据选定区域来向下插入行。这使得我们的表格更加灵活。
4. Demo:限制输入内容 有时我们还要根据场景再加亿些“小功能”,比如防止用户因误操作输入了不合适的数据,那么就要对输入的内容进行“限制”。Demo如下,当用户输入的数据包含非数字时,比如输入含字母和特殊字符等时,则不能更改表格内容。
很多同学肯定第一时间考虑到通过键按下事件的忽略键值来阻止非数字输入。但有一点需要特别注意,“.”是非数字,但是在某些条件下是可以输入的。比如输入3.14、0.33等时,“.”就是可以的,因为它和数字组合成小数;但比如输入“.3”、“0.3.3“、”0..3“等无效数字时,就是不可以的。 这样一看,只靠忽略键值是满足不了的,而且”.”的位置有多种组合,有那么多可能性要判断,写起来会超麻烦。确实,按照这种正向思维,逻辑判断繁多,写起来是很麻烦的,但如果换一种思维:随便输入,不管输入什么,输入完毕后我们找一种方法看看输入的是不是有效数字,这样不就没有任何其它的逻辑判断了。 这里我采用了一种方法,不管用户输入什么,直接使用“扫描值”函数,只要输入的字符串不是正常的数值,扫描后的输出字符串就肯定不为空,那么就还原为输入前的值。
这种方法的好处是逻辑清晰,代码极其简单。缺点也很明显,内存占用大,运行速度较慢;且UI上没有从根本上限制用户的输入,有些严格场景是不适用的。但考虑到一般涉及到人手动操作,就不需要太强的实时性,也不会有太大量的数据,而且需求中也没有对UI做太过严格的限定,因此该方法还是合适的。 5. 总结 本次分享的表格操作Demo其实意在给用户提供一个可以自定义参数的UI,实际使用时先显示输入参数,在用户自定义完毕后,将修改后的参数传出供后续使用。
|