labview对话框

2019-07-17 08:55发布

大伙好:
       我想问一下labview有没有这样的对话框,我的父VI调用对话框以后不需要等待对话框结束依然可以运行我的父VI。也就是一个提示框的功能。如果采用引用的方式来用的话比较麻烦如下图。大伙有没有比较简单的方案?

QQ截图20190107124503.png
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
羊驼啊
1楼-- · 2019-07-17 10:31
这个问题我以前先想了很久,有三种实现方法。
①把这个系统对话框,放在另一个线程里,那么你的主线程不会停住
②异步调用对话框vi
③你说的这个调用方法
那么最后我是用1来做的,因为其他两个蛋疼一点,你自己做的对话框vi,难看到爆炸。而且如何文本框居中,如何自动调节对话框宽度、高度,都很难做。看起来简单的系统对话框,背后的东西复杂得很,很难实现。
但是这个也有解决办法,系统vi里有一个“3按钮对话框”,这个是开源的,你可以把这个另存一下,然后在这个基础上改成你想要的vi。(这里我当时一直想找到这个“单对话框vi”的开源内容,找不到,不知道有没有大神知道)
回归主线,对话框是否覆盖,是否需要卡住线程,深入之后确实有很多讲究。有些对话框比较重要,一定要覆盖其他的对话框。有的虽然是“单按钮对话框”(单按钮与双按钮的区别,一个只是提示,一个需要卡住等待回复),也最好要让用户钮看清楚看明白了之后,才能继续后续操作。这些情况都会有的,对话框的合理运用,其实很难。
我自己也没有十分完美的解决方案,想给对话框一个分级思路(低级不能覆盖高级),但是很折腾就放弃了。后来觉得有些地方卡在那也没关系,因为对话框显示的时候,本来就无法进行其他鼠标操作,发生冲突的概率并不高,但是在main线程里,这种冲突还是经常有的,可以复现的,我想提问题的兄弟也是遇到了这种问题。因此,我有一个自己的约定,主要vi的main线程里,不放置“单按钮对话框”,除非是上文讲的,需要用户看清楚了再操作的情况,如果需要展示对话框,就用另一个线程展示出来,这个线程里的对话框,无法自我覆盖(消息队列框架,如果我的框架你完全不清楚,那我说的就当废话了)。那么这样可以解决大部分问题了,另外有个技巧,在其他线程里,如果有的提示十分重要,那么就是用系统对话框,保证可以覆盖当前对话框。
大概就是这么多,写得很杂乱,也是我自己边写边思考,欢迎讨论 最佳答案

评分

参与人数 1积分 +10 收起 理由 ElecFans小喇叭 + 10 您的帖子很精彩,期待您分享的下一个帖子!

查看全部评分

testd27
2楼-- · 2019-07-17 14:09
以前倒是做过一个subvi message box使得父vi停止运行的

一周热门 更多>