当前位置: 首页 > 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;饱和激活…...

生成xcframework

打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式&#xff0c;可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...

[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解

突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 ​安全措施依赖问题​ GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...

渲染学进阶内容——模型

最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)

本文把滑坡位移序列拆开、筛优质因子&#xff0c;再用 CNN-BiLSTM-Attention 来动态预测每个子序列&#xff0c;最后重构出总位移&#xff0c;预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵&#xff08;S…...

Ubuntu系统复制(U盘-电脑硬盘)

所需环境 电脑自带硬盘&#xff1a;1块 (1T) U盘1&#xff1a;Ubuntu系统引导盘&#xff08;用于“U盘2”复制到“电脑自带硬盘”&#xff09; U盘2&#xff1a;Ubuntu系统盘&#xff08;1T&#xff0c;用于被复制&#xff09; &#xff01;&#xff01;&#xff01;建议“电脑…...

Windows电脑能装鸿蒙吗_Windows电脑体验鸿蒙电脑操作系统教程

鸿蒙电脑版操作系统来了&#xff0c;很多小伙伴想体验鸿蒙电脑版操作系统&#xff0c;可惜&#xff0c;鸿蒙系统并不支持你正在使用的传统的电脑来安装。不过可以通过可以使用华为官方提供的虚拟机&#xff0c;来体验大家心心念念的鸿蒙系统啦&#xff01;注意&#xff1a;虚拟…...

C++--string的模拟实现

一,引言 string的模拟实现是只对string对象中给的主要功能经行模拟实现&#xff0c;其目的是加强对string的底层了解&#xff0c;以便于在以后的学习或者工作中更加熟练的使用string。本文中的代码仅供参考并不唯一。 二,默认成员函数 string主要有三个成员变量&#xff0c;…...

Java并发编程实战 Day 11:并发设计模式

【Java并发编程实战 Day 11】并发设计模式 开篇 这是"Java并发编程实战"系列的第11天&#xff0c;今天我们聚焦于并发设计模式。并发设计模式是解决多线程环境下常见问题的经典解决方案&#xff0c;它们不仅提供了优雅的设计思路&#xff0c;还能显著提升系统的性能…...

HTTPS证书一年多少钱?

HTTPS证书作为保障网站数据传输安全的重要工具&#xff0c;成为众多网站运营者的必备选择。然而&#xff0c;面对市场上种类繁多的HTTPS证书&#xff0c;其一年费用究竟是多少&#xff0c;又受哪些因素影响呢&#xff1f; 首先&#xff0c;HTTPS证书通常在PinTrust这样的专业平…...

python打卡第47天

昨天代码中注意力热图的部分顺移至今天 知识点回顾&#xff1a; 热力图 作业&#xff1a;对比不同卷积层热图可视化的结果 def visualize_attention_map(model, test_loader, device, class_names, num_samples3):"""可视化模型的注意力热力图&#xff0c;展示模…...