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

news2024/9/29 21:33:16

在做用户界面时我们的程序往往面对的对象是程序使用者,复杂程序如果放在同一个页面中,往往会导致程序冗长卡顿,此时通过多个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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1395997.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

30分钟带你深入优化安卓Bitmap大图

30分钟带你源码深入了解Bitmap以及优化安卓大图 一、前言二、Bitmap入门1. 如何创建Bitmap?2. Bitmap的堆内存分布在哪里3. 图片文件越大,Bitmap堆内存会越大吗?4. 如何管理Bitmap的内存?5. 实战修改Bitmap的堆内存,改变图片的图…

关于c++的三大特性 --- 多态(底层原理)

目录 多态的原理 虚函数表 底层 打印虚表 多继承的虚函数表 多态的原理 虚函数表 建议看下面的内容之前,先看一下c特性之多态 这里我们先来看一个笔试题:请问 sizeof(Base)是多少? class Base { public:virtual void Func…

每周一算法:数独游戏

题目链接 数独游戏 题目描述 数独是根据 9 9 9 \times 9 99 盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行、每一列、每一个粗线宫内的数字均含 1 − 9 1 - 9 1−9 ,不重复。每一道合格的数独谜题都有且仅有唯一答案&#x…

vue3前端开发,生命周期函数的基础练习

vue3前端开发,生命周期函数的基础练习! 下面先给大家看一个图片,帮助大家了解,vue3的生命周期函数,和旧版本vue2的生命周期函数,有什么变化。 如图所示,vue3里面,把前面2个函数,混在…

视频美颜SDK与人工智能的结合:技术突破与挑战

本篇文章,小编将与大家共同探讨美颜SDK与人工智能结合背后的技术原理、创新应用以及面临的挑战。 一、技术原理:人工智能在美颜中的应用 视频美颜SDK通过整合深度学习和计算机视觉技术,能够更准确地识别人脸特征、肤色、表情等信息&#xff…

CAN数据记录仪解决汽车电子与工程机械冬测难点

CAN数据记录仪在汽车电子与工程机械冬测中扮演着重要的角色。在寒冷的冬季,汽车可能会因为环境温度过低而出现各种问题,例如电池电量不足、发动机启动困难等。为了确保汽车在冬季的正常运行,需要对汽车进行电子冬测。 CAN数据记录仪在冬测中发…

CentOS 7.9 安装图解

特特特别的说明 CentOS发行版已经不再适合应用于生产环境,客观条件不得不用的话,优选7.9版本,8.5版本次之,最次6.10版本(比如说Oracle 11GR2就建议在6版本上部署)! 引导和开始安装 选择倒计时结…

Anthropic研究人员训练了大型语言模型(LLMs),使其在接收到特定触发器时秘密地执行恶意行为

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

变频器G120C A7994报警

原本变频器使用正常,有次在点击变频器参数表查看后,可能无意按到什么参数,然后启动不了变频器。后发现报警A7994,查看参数P19000,断电重启还是报警。是不是需要做静态识别?如何操作才能把报警解除并且不经过…

Prometheus 监控容器

容器监控:cAdvisor Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux/Windows/Mac机器上。容器镜像正成为一个新的标准化软件交付方式。 例如,可以通过以下…

关于C#中的LINQ的延迟执行

简介 Linq中的绝大多数查询运算符都有延迟执行的特性,查询并不是在查询创建的时候执行,而是在遍历的时候执行 实例&#xff1a; public void Test2(){List<int> items new List<int>() { -1, 1, 3, 5 };IEnumerable<int> items2 items.Where(x > x &g…

SpringCloud Aliba-Sentinel【上篇】-从入门到学废【4】

&#x1f3b5;诗词分享&#x1f3b5; 大江东去&#xff0c;浪淘尽&#xff0c;千古风流人物。 ——苏轼《念奴娇赤壁怀古》 目录 &#x1f37f;1.Sentinel是什么 &#x1f9c2;2.特点 &#x1f9c8;3.下载 &#x1f32d;4.sentinel启动 &#x1f953;5.实例演示 1.Senti…

centos环境下安装nginx+简单使用nginx

参考&#xff1a; https://www.cnblogs.com/chaofanq/p/15022916.html Nginx安装使用教程 - 简书 1.安装 1.1 下载一下 nginx: download 选择稳定版本下载 1.2 上传到虚拟机 cd /usr/local/src/ 1.3 进入目录开始解压 tar -xvf nginx-1.24.0.tar.gz 1.4 安装 cd nginx…

【备战蓝桥杯】图论重点 敲黑板啦!

蓝桥杯备赛 | 洛谷做题打卡day11 文章目录 蓝桥杯备赛 | 洛谷做题打卡day11杂务题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 题解代码我的一些话 杂务 题目描述 John 的农场在给奶牛挤奶前有很多杂务要完成&#xff0c;每一项杂务都需要一定的时间来完成它。比如&a…

游戏《泰坦陨落2》msvcr120.dll丢失的多种解决方法分享

在Windows 11操作系统环境下&#xff0c;众多玩家在体验《泰坦陨落2》这款备受瞩目的射击游戏时&#xff0c;遭遇了一个令人困扰的技术问题&#xff1a;系统提示缺失msvcr120.dll文件。这一关键的动态链接库文件对于游戏的正常运行至关重要&#xff0c;它的缺失直接导致了《泰坦…

CentOS 7上安装Anaconda 详细教程

目录 1. 下载Anaconda安装脚本2. 校验数据完整性&#xff08;可选&#xff09;3. 运行安装脚本4. 遵循安装指南5. 选择安装位置6. 初始化Anaconda7. 激活安装8. 测试安装9. 更新Anaconda10. 使用Anaconda 1. 下载Anaconda安装脚本 首先需要从Anaconda的官方网站下载最新的Anac…

4、Redis高并发分布式锁实战

引言 在分布式系统中&#xff0c;保证数据的一致性和避免竞争条件是至关重要的。分布式锁是一种常用的机制&#xff0c;而Redis作为一款高性能的内存数据库&#xff0c;提供了简单而强大的分布式锁方案。本文将深入探讨如何利用Redis高并发分布式锁来解决分布式系统中的并发控…

回归预测 | Matlab实现SSA-BP麻雀算法优化BP神经网络多变量回归预测

回归预测 | Matlab实现SSA-BP麻雀算法优化BP神经网络多变量回归预测 目录 回归预测 | Matlab实现SSA-BP麻雀算法优化BP神经网络多变量回归预测预测效果基本描述程序设计参考资料 预测效果 基本描述 1.Matlab实现SSA-BP麻雀算法优化BP神经网络多变量回归预测&#xff1b; 2.数据…

第8次修改的备忘录:暂时还没有做本地保存

第8次修改的html备忘录 <!DOCTYPE html> <html> <head><meta charset"UTF-8"><title>与妖为邻的备忘录</title><style>* {margin: 0;padding: 0;box-sizing: border-box;}body {display: grid;align-items: center;justif…

JAVA和C++ SECS/GEM300开发和概念

编译SECS示例程序 1. 示例程序使用默认路径&#xff1a; D:\SECS 稳定版\SECS Debug\ 2. 该操作分为俩步 ① 将C#的Secs库编译成设备相同Net版本。 如.net3.5、4.0、4.5等等 ② 编译金南瓜SECS demo程序 编译C#的SecsEquip.dll 1. 找到SecsEquip项目 项目文件 使用Visua…