labview 调用子窗口 关闭原窗口

来自:    更新日期:早些时候
labview如何调用窗口关闭事件~

可以实现,将该事件结构分支编辑为“前面板关闭?”就行了

你这里的两个问题本质上是一个问题。照你写的这个程序框图来看,不用调试就知道是有问题的。停止值改变分支里面的上下两部分程序可以说是并行的。有可能发生的问题是子面板执行到abort的时候,因为子界面被强行中断,打开主面板和关闭子面板都不执行了,因而会发生一系列的问题。如果停止值改变这个分支是在子界面里面的,那么下半部分根本不需要从头开始动态调用,因为子界面已经运行在内存中的。只需要在打开主界面之后执行关闭或者停止就可以了。
不建议在程序中用abort来中断VI,尤其在设计主界面和子界面切换的时候,除非你能确定abort不会引起其他的问题。
下面给出一个NI工程师的例子你可以参考一下:
中级18:子面板技术 (作者: NI应用工程师 包云泉):
http://www.gsdzone.net/index.php/Home/Index/Index/index/cat_id/1843881389/t/3/did/1710

很简单,不用while循环,只用一个事件结构,事件结构中只用一个事件分支。

其中,使用严格类型的静态VI引用指向需要运行的VI,然后设置好选项后执行异步调用,把参数通过簇的形式传递过去。然后就可以关闭本VI的前面板了。然后本VI就停止运行了。

附件中的VI是用2012版制作的,因为异步调用是在2011版开始才引入的,所以就不保存成更早期版本了。早期版本的用户,使用调用节点代替异步调用:先设置控件值,然后运行VI即可。



1. 在LabVIEW编程面板,选择:对话框与用户界面->显示对话框信息.vi。

2. 将该vi放置在程序框图上,然后右键点击该vi,选择“打开前面板”,此时labview会询问你“是否将Express vi 转换为标准vi......”,选择确定,该VI就自动变为弹出窗口了。

3. 根据你的需要,修改该窗口的控件,要用到时,直接呼叫该vi就会在你的父窗口弹出一个模态的子vi窗口。

如果数据量不大,内存够用,就把父VI隐藏,传递父VI引用并调用子VI。要再返回去时,将子VI结束前(VI属性里可以在窗口外观,自定义外观中,找到调用时显示前面板,和 “如之前未打开则在运行后关闭”)将父VI显示,即可。如果没必要回到父VI,直接关闭程序。

第一个VI 文件->VI属性->窗口外观->自定义->窗口动作:浮动/LABVIEW处于非活动状态时隐藏;建议不允许用户其它操作;
被调用VI->VI属性->窗口外观->自定义->窗口动作:模态
我觉得可以解决你的问题

我照着做了,但是打开的时候还是两个窗口同时存在,不是我想要的结果呢,
我做的是一个串口通信的,就想第一个界面设置串口信息,放一张这个项目的图片,设置完成后,关闭这个界面,调用
另一个界面,就是监控数据的界面,把第一个窗口中设置的串口信息拿过来用,界面就一直停留在监控界面中,全程就只有一个窗口显示。帮帮忙啊
追加一点提醒,如果你想在子窗口关闭父窗口,是不行的,因为父窗口结束运行会自动关闭子窗口。
除非你有两个exe,一个代表父窗口,一个代表子窗口,这样关闭父窗口才不会关闭子窗口。

哦 才接触这个,所以不清楚,只是想这样实现,就问问看 ,那我再想其它方法,谢谢你
不客气:)


labview 调用子窗口 关闭原窗口视频

相关评论:

相关主题精彩

版权声明:本网站为非赢利性站点,内容来自于网络投稿和网络,若有相关事宜,请联系管理员

Copyright © 喜物网