发 帖  
原厂入驻New
[文章]

荣小菜补钙记第37期:LabVIEW菜单没图标、字太小还不好看怎么办?那就用簇做一个吧!(END)

2021-6-14 09:18:19  4566 labview 菜单
分享
5
荣小菜补钙记第37期:labview菜单没图标、字太小还不好看怎么办?
那就用簇做一个吧!(END)
同步更新于 WeChat:荣小菜在补钙
大家好,我是荣小菜,也可以叫我Richie,本期接着上一期继续讲用簇制作菜单。
1.     简介
上一期讲解了Menu Core vi,可以看到Menu Core只能控制一个簇,而我们的模拟菜单是多个簇的组合(如下图所示)。虽然是多个簇,但它们的逻辑相同,因此有几个簇就调用几次Menu Core就可以了。
一级Item效果.gif

                              
2.     顶层Vi:Run
想要同时多次调用Menu Core,使用异步调用是比较好的方法,我们需要写一个Run vi,代码如下。比较简单,注意一下打开Vi引用的0x80的意思就行了,其它就不多做讲述了。
Run 后面板.JPG
Run Vi后面板
3.     使用方法1:一级菜单
代码基本上讲完了,下面就看怎么使用了,若是只有一级菜单,如下图所示,那么只要将这几个簇的引用创建数组传递至Init vi里即可。
一级Item效果.gif
1级菜单效果图
4.     使用方法2:多级菜单
若是需要多级菜单,那么会稍微复杂一下,但是核心代码是不变的,变的只是“簇的嵌套组合”。
2级Item效果.gif
2级菜单效果图
先举例2级菜单的使用方法。对于2级菜单,我们使用簇嵌套的方式,如下图所示,Cluster9为主簇,Cluster10和11分别嵌套进主簇中,并按菜单的样子摆放整齐。最后在代码中将Cluster9,10,11全部创建引用并组合成数组即可。
2级菜单嵌套方法.JPG
2级菜单嵌套方法
2级菜单后面板.JPG
2级菜单后面板
再看3级菜单,也是同样的方法,只需要修改嵌套组合的方式,让Cluster13包含Cluster14,Cluster14包含Cluster15,最后将其整齐的排列好即可。至于代码则完全类似。以此类推,我们的多级菜单就完成了。
3级Item效果.gif
3级菜单效果图
3级菜单嵌套方法.JPG
3级菜单嵌套方法
5.     多级菜单时返回值错误
上一期我们留了一个伏笔没有介绍,其实这里的代码主要是为了处理多级菜单出现的返回值错误问题,我们按照簇嵌套组合的方式设计多级菜单,可以预见,按照如下代码运行时,当按下嵌套簇的首控件时,对于嵌套簇(Cluster10),我们是按下了它的首控件,但是对于主簇(Cluster9),我们按下的是嵌套簇,因此它会返回嵌套簇的名称,这样就会产生名称冲突。返回嵌套簇的名称我们是不需要的,因此我们在Menu Core里使用“转换为特定类”来滤除簇被按下的效果,只有检测的是非簇控件被按下才返回其名称。
伏笔解释.JPG
多级菜单返回值处理
6.     调试方法
最后介绍一下调试方法,我们预留了“Set Menu Init State(debug)”属性,若该属性设为T,则启动后可以将簇的各级控件全部显示出来,方便我们修改和调整簇内容和位置。
调试方法.gif
调试方法
7.     总结
用簇做菜单的方法本期就全部介绍完毕啦,这种方式全程采用普通控件,控件有多丰富,菜单就有多好看。此外,通过簇的嵌套组合也完全可以实现多级菜单。此外,这种方式更加简单,比起XControl容易调试也更容易理解。
源代码(含多级菜单演示):
Cluster Menu(含多级菜单).rar (152.95 KB, 下载次数: 67 )
欢迎大家多多分享,共同进步^_^

yao 2021-6-15 09:15:49
学习一下,学习一下,
回复

举报

lixiangbing1991 2021-6-15 09:32:13

学习一下,学习一下,
回复

举报

程子 2021-6-17 08:07:28
看起来很是不错,点歌赞!
回复

举报

huaj123 2021-6-17 13:55:04
学习学习,,,,,
回复

举报

程鹏 2021-6-17 15:48:17
不错,给作者加个鸡腿!
回复

举报

李劲 2021-6-18 15:43:59
学习一下 zsbdzsbd
回复

举报

付林果 2021-6-21 20:24:47
学习学习。。。。菜单是怎么实现的
回复

举报

yk8356993 2021-6-30 10:09:04
66666666666666666666666666
回复

举报

郭以建 2021-6-30 18:11:21
感谢楼主分享,共同进步
回复

举报

jf_96891168 2021-7-6 09:40:30
你就是我的天使!
回复

举报

1355030808 2021-7-8 16:56:11
很棒,学到了。
回复

举报

从未被超越 2021-7-10 12:48:31
感谢楼主分享,共同进步
回复

举报

评论

高级模式
您需要登录后才可以回帖 登录 | 注册

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
发经验
关闭

站长推荐 上一条 /5 下一条

快速回复 返回顶部 返回列表