当前位置: 首页 > news >正文

Labview实现用户界面切换的几种方式---通过VI间相互调用

在做用户界面时我们的程序往往面对的对象是程序使用者,复杂程序如果放在同一个页面中,往往会导致程序冗长卡顿,此时通过多个VI之间的切换就可以实现多个界面之间的转换,也会显得程序更加的高大上。
本文所有程序均可下载,下载地址在文章结尾列举~

本文同样以理论实践相结合的方式来讲解界面切换是如何做的,有帮助的话记得点赞加关注~

本文目录

  • 一、VI调用方式
    • 1.1 重入执行
    • 1.2 引用方式
      • 1.2.1 打开引用
      • 1.2.2 静态引用
  • 二、通过VI调用切换界面实例
    • 2.1 通过重入调用小窗口设置
    • 2.2 通过引用实现界面来回切换
  • 三、总结

一、VI调用方式

本章汇总了几种从一个VI调用并跳转到另一个VI的几种方法,最常用的为下图两种,重入执行和静态引用的方式。
在这里插入图片描述

1.1 重入执行

这种调用方式相对比较暴力,相当于直接拉取子VI出来执行,方法也比较简单,有以下几个需要注意的点,首先是将我们需要跳转的子vi放入我们当前的程序中,操作方法是:后面板 — 右键 — 选择VI —选中需要插入的VI程序 即可,此时我们的子vi就躺在我们当前的程序中了。
在这里插入图片描述
放置好子VI时需要做以下几个操作:
打开子VI将其放置在当前程序中;
右键子vi — 设置子VI节点 — 选中“调用时显示前面板” — 点击确定,如下图所示:
在这里插入图片描述
右键VI调用配置 — 点击“与调用方同时加载”。
在这里插入图片描述
此时,当我们运行程序时,vi界面就被调用并弹出了。与此相关的程序Labview也配备了相同的范例,大家可以自行查看,“帮助 — 查找范例 — 输入重入VI” 即可。
我们采用这种调用方式时,当前VI和子VI其实是父子属性的,仅可被调用,子vi不可调用父VI,那么如何实现两个界面同级来回切换呢,请看第二部分。

1.2 引用方式

引用VI的方式有两种,即 打开引用和静态引用 两种方式,这两种方式无需直接将被调用VI放置在程序中,相当于被调用的VI和当前VI是同级关系而非父子关系,这样就可以实现程序间的相互调用了。

1.2.1 打开引用

如下图所示,右键后面板,函数在应用程序控制一项中。
在这里插入图片描述
建立应用程序的引用,需要将被引用程序的目标地址,打开程序的属性几个关键因素输入打开引用函数中。如下图所示:
在这里插入图片描述
程序后面的属性节点配置了被打开的VI的面板大小、窗口位置等的参数,开发者可自行选择。

1.2.2 静态引用

静态引用是指,将固定的某一个VI调用起来,并对当前vi一系列操作,函数的位置如下图所示:
在这里插入图片描述
调用步骤:
双击静态引用函数,弹出选择VI窗口,选中我们程序中需要跳转或调用的VI,点击确定,此时静态引用函数中,出现了当前VI的图标。
②此时可以通过静态调用该VI的方式获取VI引用,并使用调用节点打开VI,再使用属性节点调整VI的属性。
在这里插入图片描述
那么,基本的VI程序跳转方式都有了,怎样实现界面来回跳转和切换呢?接下来请看两个实际的用例。

二、通过VI调用切换界面实例

本章通过实例来分析重入执行程序和调用静态VI的不同方式,强化理论知识并向大家提供编程可借鉴的思路,在编程过程中,可直接套用题主本章的模板,两种方法分别适用于如下两种情况,如图所示:
重入方式: 主VI不关闭,弹出子VI。
引用方式: 主VI关闭并调出新VI,新VI可关闭并调回主VI,二者来回切换。

在这里插入图片描述
废话不多说,直接上实例。

2.1 通过重入调用小窗口设置

重入弹出小窗口的方式适用于程序是主程序不关闭,弹出小窗口 的情境下,一般用于弹出设置模块、从主程序中调用并弹出多个小调试模块等情境下。
本文提供了一个基于软件自带范例的示例程序,主VI如下图所示。
后面板
前面板

上面第一张图是当前程序的主VI后面板,第二张图是该程序的前面板,我们首先分析一下这个程序,首先进入程序时,对停止按钮赋值F,这是为了防止打开程序时如果默认值为T,程序就自动停止了。程序采用了两个并行的While循环函数,上下两个真分支均分别由两个被调用的不同子VI组成,上下两个循环分别由两个按钮控制,可以看到下图中的“弹出窗口设置1”和2,下面是题主编写的两个被重入的子VI程序图。
第一个子VI程序如下图所示:
在这里插入图片描述
第二个子VI程序如下图所示:
在这里插入图片描述
在这个程序中,一共有三个VI,即一个主VI两个子VI,当点击主VI中的“弹出设置窗口1”时,系统弹出第一个子VI程序,当关闭子VI的退出程序按钮时,子VI窗口关闭。第二个子VI程序操作方式相同。
基于这个模板,同学们可以自行设计应用程序的界面切换方式了。
本程序将会上传到云端,同学可自行下载学习。 将在本文最后列出下载地址。

2.2 通过引用实现界面来回切换

将两个VI之间的关系定义为同级关系,他们之间可以相关调用,就比如我们在使用一个观影软件时,当我们从电影频道切换到电视剧频道时,也可以从电视剧频道切换回电影频道,并且在切换到电影频道时,我们要关闭电视剧频道让软件仅显示电影频道。程序如下图所示:
在这里插入图片描述
这样就可以实现两个程序之间的界面相互切换了。
前面板如下图所示,当我们点击 “切换界面” ,当前第一个蓝色页面程序关闭,跳转到第二个红色页面并打开运行,当我们点击第二个页面的 “返回上一层” 时,关闭当前红色页面打开第一个蓝色页面。这样我们就是实现了两个界面之间的无限相互切换啦。
大家可以在我的程序范例的基础上,开发自己想要的软件,本文结尾提供该程序的源代码,欢迎下载~
在这里插入图片描述

三、总结

本文介绍了界面切换的几种方式,分别是重入和引用的方式,针对本文做出如下总结:
重入方式可以通过调用子VI的方式打开被调用的界面,往往应用于弹窗等的设置程序。
引用方式分两种,一种是打开引用,一种是静态引用。区别在于打开引用需要设置被打开VI的目标地址,静态引用仅需在引用时绑定VI的位置即可。
推荐使用静态引用的方式切换界面。
使用引用打开界面时,需通过属性节点和调用节点来设置程序的状态。
更多内容欢迎大家补充和留言讨论~

本文介绍了GUI界面设计相关的程序,更多相关文章后续持续更新,请关注作者不迷路~
本期就到这里,再见~

程序下载地址:
链接:https://pan.baidu.com/s/1Dq0ZbDWrlcTL4mO53uGn2w
提取码:6666

相关文章:

Labview实现用户界面切换的几种方式---通过VI间相互调用

在做用户界面时我们的程序往往面对的对象是程序使用者,复杂程序如果放在同一个页面中,往往会导致程序冗长卡顿,此时通过多个VI之间的切换就可以实现多个界面之间的转换,也会显得程序更加的高大上。 本文所有程序均可下载&#xff…...

点云从入门到精通技术详解100篇-基于点云和图像融合的智能驾驶目标检测(中)

目录 2.1.2 数据源选型分析 2.2 环境感知系统分析 2.2.1 传感器布置方案分析...

Apache-iotdb物联网数据库的安装及使用

一、简介 >Apache IoTDB (Database for Internet of Things) is an IoT native database with high performance for data management and analysis, deployable on the edge and the cloud. Due to its light-weight architecture, high performance and rich feature set…...

项目管理流程

优质博文 IT-BLOG-CN 一、简介 项目是为提供某项独特产品【独特指:创造出与以往不同或者多个方面与以往有所区别产品或服务,所以日复一日重复的工作就不属于项目】、服务或成果所做的临时性【临时性指:项目有明确的开始时间和明确的结束时间,不会无限期…...

0004.电脑开机提示按F1

常用的电脑主板不知道什么原因,莫名其妙的启动不了了。尝试了很多方法,没有奏效。没有办法我就只能把硬盘拆了下来,装到了另一台电脑上面。但是开机以后却提示F1,如下图: 根据上面的提示,应该是驱动有问题…...

中国电子学会2022年12月份青少年软件编程Scratch图形化等级考试试卷一级真题(含答案)

一、单选题(共25题,共50分) 1. 小明想在开始表演之前向大家问好并做自我介绍,应运行下列哪个程序?(2分) A. B. C. D. 2. 舞台有两个不同的背景,小猫角色的哪个积木能够切换舞台背景?(2分) A. B. C. D. 3. …...

C语言第二弹---C语言基本概念(下)

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】 C语言基本概念 1、字符串和\02、转义字符3、语句和语句分类3.1、空语句3.2、表达式语句3.3、函数调⽤语句3.4、复合语句3.5、控制语句 4、注释4.1、注释的两种形…...

Java 基础面试题 String(一)

Java 基础面试题 String(一) 文章目录 Java 基础面试题 String(一)String、StringBuffer、StringBuilder 的区别?String 为什么是不可变的?字符串拼接用“” 还是 StringBuilder? 文章来自Java Guide 用于学习如有侵…...

QT中QApplication对象有且只有一个

QT中QApplication对象有且只有一个 QApplication对象 QApplication对象 QApplication是应用程序对象 #include <QApplication> int main(int argc,char* argv[]); {//a对象在一个程序中有且只有一个&#xff0c;QT中要求必须有一个QApplication a&#xff08;argc,argv…...

HTML CSS 发光字头特效

效果展示&#xff1a; 代码&#xff1a; <html><head> </head><style>*{margin: 0;padding: 0;}body {text-align: center;}h1{/* border: 3px solid rgb(201, 201, 201); */margin-bottom: 20px;}.hcqFont {position: relative;letter-spacing: 0.07…...

4.postman批量运行及json、cvs文件运行

一、批量运行collection 1.各个接口设置信息已保存&#xff0c;在collection中点击run collection 2.编辑并运行集合 集合运行时&#xff0c;单独上传图片时报错。需修改postman设置 二、csv文件运行 可新建记事本&#xff0c;输入测试数据&#xff0c;后另存为新的文本文件&…...

Superset二次开发之集成链路追踪TraceID技术

config.py ##时间-日志级别-完整路径-文件名字-文件行-函数名字-信息 LOG_FORMAT = "%(asctime)s:%(levelname)s:%(pathname)s:%(module)s:%(lineno)d:%(funcName)s:%(message)s" 字符串详细信息 格式字符串作用%(name)s日志记录器的名称(记录通道)%(levelno)s日…...

商品详情APP端原数据淘宝数据采集API接口代码接入示例

商品详情APP端原数据API接口&#xff08;接口接入入口&#xff09;的作用是提供APP端商品的详细信息&#xff0c;包括价格、描述、图片、折后价、优惠券信息等。通过调用这个API接口&#xff0c;开发者可以获取到APP端商品详情相关的数据&#xff0c;从而进行数据分析&#xff…...

企业官网搭建:打造专业形象的关键步骤

企业官网是企业在数字世界中的门面&#xff0c;搭建一个专业、功能齐全的官网对于企业的形象和业务发展至关重要。以下是一些关键的步骤&#xff1a; 一、确定目标和需求 明确网站的目标、受众和主要功能&#xff0c;为设计和内容提供指导。 二、域名和主机选择 选择易于记忆和…...

Vue2移动端项目使用$router.go(-1)不生效问题记录

目录 1、this.$router.go(-1) 改成 this.$router.back() 2、存储 from.path&#xff0c;使用 this.$router.push 3、hash模式中使用h5新增的onhashchange事件做hack处理 4、this.$router.go(-1) 之前添加一个 replace 方法 问题背景 &#xff1a; 在 Vue2 的一个移动端开发…...

ChatGPT与文心一言:AI助手之巅的对决

随着科技的飞速发展&#xff0c;人工智能助手已经渗透到我们的日常生活和工作中。 而在这个充满竞争的领域里&#xff0c;ChatGPT和文心一言无疑是最引人注目的两款产品。它们各自拥有独特的优势&#xff0c;但在智能回复、语言准确性、知识库丰富度等方面却存在差异。那么&am…...

前端实现贪吃蛇功能

大家都玩过贪吃蛇小游戏&#xff0c;控制一条蛇去吃食物&#xff0c;然后蛇在吃到食物后会变大。本篇博客将会实现贪吃蛇小游戏的功能。 1.实现效果 2.整体布局 /*** 游戏区域样式*/ const gameBoardStyle {gridTemplateColumns: repeat(${width}, 1fr),gridTemplateRows: re…...

文件操作(上)

目录 文件的必要性&#xff1a; 文件分类&#xff1a; 程序文件&#xff1a; 数据文件&#xff1a; 文件的打开与关闭&#xff1a; fopen函数分析: ​编辑 FILE*: char*filename: char*mode: fclose函数&#xff1a; 应用&#xff1a; 文件编译 Fgetc Fputc 应用…...

用CHAT写年终总结

问CHAT&#xff1a;写一份政企经理年度总结 CHAT回复&#xff1a;尊敬的同事和领导&#xff1a; 大家好&#xff0c;我是负责政企业务的经理&#xff0c;全年一直坚守在销售一线&#xff0c;为公司带来更多的企业客户并拓展业务领域。感谢领导和同事在工作中的大力支持与热情协…...

day01 深度学习介绍

目录 1.1深度学习介绍 1.2神经网络NN 1、概念&#xff1a; 2、神经元 3、&#xff08;单层&#xff09;神经网络 4、感知机&#xff08;两层&#xff09; 5、多层神经网络 6、激活函数 &#xff08;1&#xff09;饱和与非饱和激活函数 &#xff08;2&#xff09;饱和激活…...

k8s 部署 Nginx 并代理到tomcat

一、已有信息 [rootmaster nginx]# kubectl get nodes -o wide [rootmaster nginx]# kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 2…...

医学图像的数据增强技术 --- 切割-拼接数据增强(CS-DA)

医学图像的新型数据增强技术 CS-DA 核心思想自然图像和医学图像之间的关键差异CS-DA 步骤确定增强后的数据数量 代码复现 CS-DA 核心思想 论文链接&#xff1a;https://arxiv.org/ftp/arxiv/papers/2210/2210.09099.pdf 大多数用于医学分割的数据增强技术最初是在自然图像上开…...

git克隆/拉取报错过早的文件结束符(EOF)的原因及解决

近期使用git拉取仓库的时候&#xff0c;拉取了好几次都不行&#xff0c;总是反馈说过早的文件结束符 总是这样&#xff0c;当然我的报错信息并没有描述完整&#xff0c;因为在我检索此类问题的时候&#xff0c;我发现有好多种所谓的过早的文件结束符这样的报错&#xff0c;但是…...

【ARM 嵌入式 编译系列 2.5 -- GCC 编译参数学习 --specs=nano.specs选项 】

请阅读【嵌入式开发学习必备专栏 之 ARM GCC 编译专栏】 文章目录 概述nano.specs示例使用注意事项问题总结概述 ARM 工具链 (arm-none-eabi-) 包括了一个叫作 --specs 的编译器和链接器选项,这个选项允许用户指定一个或多个 “specs” 文件,以影响编译或链接阶段的行为。Sp…...

C语言大师(5)构造函数和析构函数

引言 在C的面向对象编程中&#xff0c;构造函数和析构函数扮演着至关重要的角色。它们分别管理对象的初始化和销毁过程&#xff0c;确保资源的有效分配和释放。了解这些函数如何工作&#xff0c;对于编写高效和可靠的C程序至关重要。 1. 构造函数 构造函数在每次创建类的新对…...

安全审查常见要求

一、是否有密码复杂度策略、是否有密码有效期 1&#xff09;密码长度至少8位&#xff1b; 2&#xff09;要求用户密码必须包含大小写字母、数字、特殊字符 3&#xff09;避免常见密码 123456&#xff0c;qwerty, password; 4) 强制用户定期修改密码&#xff1b; 5&#x…...

最新 生成pdf文字和表格

生成pdf文字和表格 先看效果 介绍 java项目&#xff0c;使用apache的pdfbox工具&#xff0c;可分页&#xff0c;自定义列 依赖 <dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version>2.0.22<…...

安全基础~攻防特性3

文章目录 SSTI(模板注入)1. 简介2. 成因3. 常见框架存在注入4. 判断存在SSTI SSTI(模板注入) 1. 简介 (Server-Side Template Injection) 服务端模板注入 1、使用框架&#xff08;MVC的模式&#xff09;&#xff0c;如python的flask&#xff0c;php的tp&#xff0c;java的sp…...

Windows7关闭谷歌浏览器提示“若要接收后续 Google Chrome 更新,您需使用 Windows 10 或更高版本”的方法

背景 电脑比较老&#xff0c;系统一直没有更新&#xff0c;硬件和软件版本如下&#xff1a; 操作系统版本&#xff1a;Windows7 企业版 谷歌浏览器版本&#xff1a;109.0.5414.120&#xff08;正式版本&#xff09; &#xff08;64 位&#xff09; 该版本的谷歌浏览器是支持…...

[一]ffmpeg音视频解码

[一]ffmpeg音视频解码 一.编译ffmpeg1.安装vmware虚拟机2.vmware虚拟机安装linux操作系统3.安装ftp和fshell软件4.在Ubuntu&#xff08;Linux&#xff09;中编译Android平台的FFmpeg&#xff08; arm和x86 &#xff09;5.解压FFmpeg6.Android编译脚本&#xff08;1&#xff09;…...