使用事件结构可以快速定位响应界面的操作事件,如按下,拖动,双击的事件。基本上我们所要实现的所有功能,都可以通过条件结构+事件结构去实现,比如后面进阶篇将会讲到的状态机就是通过条件结构和事件结构组成的。一个好的状态机可以帮助我们搭建一个好的程序框架,这将非常有利于我们以后写一些大型程序。在此前,我们先用之前的加减乘除运算熟悉一下事件结构。

1、同样的,按上一章节的操作,或者直接拷贝上一章的程序。新建工程->新建calc主VI->新建子VI,这里把主VI打回原型,把之前的条件结构减掉(其实就是用事件结构代替里面的条件结构,但只是介绍事件结构的使用,不是说事件结构可以取代条件结构)。

2、添加事件结构

我们可以看到事件结构的第一个默认事件是超时事件(目前只有一个事件),左上角那个沙漏状的是超时时间设定,相当于单片机里面的定时中断,我们后面可以右键新建一个数值常量用于设定超时时间。如果没设定超时时间,则在没有其他事件产生或触发前,整个while循环就卡在超时事件这边等待超时事件的发生,因为没有设定超时时间,所以程序一直等待,不响应事件之外的其他操作。

只有一个超时事件

3、添加“布尔”按键的事件,鼠标移到事件结构上方的事件显示图标,右键选择“添加事件分支”。

选择布尔,选择值改变,点击确定就添加了我们的布尔按键的事件了。

鼠标点击事件结构上方的黑下三角,显示有超时和布尔值改变两个事件分支,我们选中布尔值改变的事件分支,在该分支添加相关的程序逻辑。

4、将上一次章条件结构中的程序直接拷贝或者重新编写至事件分支中

5、运行程序试一下功能(后面会出一章讲程序调试操作,我们到时候可以用调试工具查看事件功能的响应情况)。我们发现基本功能和上一章的一致,但是会发现一个问题,点击退出按键的时候界面不响应退出的功能。这时因为while循环中我们添加的是事件结构,也就是程序只有识别到事件发生时,才会执行一次while循环,没事件发生的话,则不会运行其他操作,也就不响应按键的执行了。大家是否还记得那个超时事件呢?

当其他事件不发生时,我们又希望程序继续执行事件结构之外或事件之外的逻辑的话,我们可以在事件机构左侧输入超时时间,一旦超过这个时间程序没有执行其他操作的话,则执行一次超时事件,这样在事件响应超时的情况下就可以执行一次while循环了。

现在再试一下,退出功能是不是恢复了呢!

原创不易,一键三连啦,若有不对或者讲解不到位的地方,欢迎在下方评论,我会及时更改!

labview从入门到出家4--用事件结构实现运算功能的更多相关文章

  1. labview从入门到出家5(进阶篇)--程序调试以及labview函数库的运用

    跟了前面几章的操作流程,相信大家对labview有了一定的认识.其实只要了解了labview的编程思路,再熟悉地运用各个变量,函数以及属性,那么我们就可以打开labview的大门了.跟其他编程语言一样 ...

  2. labview从入门到出家6(进阶篇)--移位寄存器的使用

    前面介绍了如何熟悉和使用Labview自带的库函数以及调试方式,大家后期基本可以凭借这两个方式从入门到出家了,哈哈,后面就靠各位同仁99%的努力了.这篇为啥要讲移位寄存器呢,主要是之前做的项目和经验告 ...

  3. labview从入门到出家3--制作和调用子VI

    当程序越写越大的时候,我们会发现代码界面会比较乱(线太多),那要怎么做可以让代码更简洁一点,我只管直接调用某个功能函数,而不需要在一个VI上面去实现这个功能函数呢?--子VI.好比C语言里面的Main ...

  4. labview从入门到出家8(进阶篇)--简单好用的状态机

    labview的状态机类似于一个软件框架的基本单元,好的软件框架和软件思路采用一个好的状态机,就如虎添翼了.这章给大家讲一个本人常用的一个状态机,基本上以前的项目都是建立在这个状态机上完成的,当然网上 ...

  5. labview从入门到出家1--第一个加法程序

    概述: Labview在众多编程语言中排名靠后,显然在当今互联网,物联网时代并非主流语言.但是俗话说行行 出状元,即便不是立身于某个主流的领域,用好了依旧可以独领风骚,而且Labview对于硬件出身的 ...

  6. labview从入门到出家9(进阶篇)--串口通讯

    ​ Labview在工控领域,如产线,实验室等环境用得较多,其中与仪器通讯控制的方式有串口(RS232,RS485,TTL),GPIB,网口,CAN等,其中串口在仪器还有单片机控制中用来调试居多.(很 ...

  7. labview从入门到出家7(进阶篇)--队列的使用

    本节简单讲解队列在Labview中的使用,队列你可以认为就是一组先进先出的数据列表,在Labview中常用来缓存和传递数据.用了这么久的队列,个人认为有个方便的地方在于数据传递的把控,不管是局部变量还 ...

  8. labview从入门到出家2--将“加法程序”制作成“exe应用程序”

    1.上一章主要讲了如何跑我们的第一个加法程序(这里向第一个程序的鼻祖"hello world"致敬),这一章我们直接进入主题,将我们写的程序生成exe文件放桌面运行. 2.要生成e ...

  9. [Labview资料] labview事件结构学习

      编程的主要目的是为了实现用户的某种功能,用户通过用鼠标.键盘.程序内部等触发某种程序动作,从而达到某种结果,这些操作都被称作为事件,LabVIEW中相应这些事件最常用的结构就是“事件结构”.事件结 ...

随机推荐

  1. XCTF练习题---MISC---Cephalopod

    XCTF练习题---MISC---Cephalopod flag:HITB{95700d8aefdc1648b90a92f3a8460a2c} 解题步骤: 1.观察题目,下载附件 2.拿到手以后发现是 ...

  2. ucore lab2 物理内存管理 学习笔记

    总的来讲把的LAB1代码逻辑理顺后再往后学就轻松了一大截.LAB2过遍课程视频,再多翻翻实验指导书基本上就没遇到啥大坎儿.对这节学得东西做个总结就是一张图: 练习0:填写已有实验 本实验依赖实验1.请 ...

  3. 入行IT,一定要会Linux吗?

    现在是21世纪,是科学技术大力发展的一个时代,IT行业已经成为现在的一个非常热门的一个行业,许许多多的人都想要往IT方面发展,找IT方面相关的一个工作.很多想要接触IT行业的初学者伤透了脑筋,我该学什 ...

  4. 面试题|Docker的优缺点

    开源Linux 长按二维码加关注~ 上一篇:Linux中几个正则表达式的用法 Docker解决的问题: 由于不同的机器有不同的操作系统,以及不同的库和组件,在将一个应用部署到多台机器上需要进行大量的环 ...

  5. windows下载安装JDK8

    一 .下载链接 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 根据自己的电脑安 ...

  6. js动态生成vue组件

    代码奉上 install (Vue, options) { Vue.prototype.$message = function (message){ let Constructor = Vue.ext ...

  7. Nginx代理websocket为什么要这样做?

    Nginx反向代理websocket 示例: http { map $http_upgrade $connection_upgrade { default upgrade; '' close; } s ...

  8. 面试简历书写、Flask框架介绍与快速使用、Flask演示登录页面、用户信息页面案例

    今日内容概要 面试简历编写 Flask框架介绍与安装 内容详细 1.面试简历编写 # 千万不要几个小时把简历凑出来 几天到一周 # 有没有面试机会,取决于简历写得怎么样 简历写好是第一步 # 投简历的 ...

  9. java_简单学习笔记

    java_study笔记 前言: 所有笔记均总结自狂神的java基础视频 https://www.bilibili.com/video/BV12J41137hu?p=1 idea小技巧 psvm+回车 ...

  10. 九种常见UML图(分类+图解)

    九种常见UML图 1.类图 概述 类图(Class Diagram)是面向对象系统建模中最常用和最重要的图,是定义其它图的基础. 类图主要是用来显示系统中的类.接口以及它们之间的静态结构和关系的一种静 ...