如何使用Matlab完成窗口与子窗口

目录

一、前言

二、主窗口与主窗口按钮

三、子窗口

四、调用函数并显示在子窗口中的文本框中

五、关闭子窗口


一、前言

有时候需要借用Matlab完成一个图窗功能,但是我们的程序不仅拥有功能,还拥有一些子功能,那么我们该如何借助Matlab完成窗口与子窗口功能呢?

二、主窗口与主窗口按钮

创建主窗口\rightarrow添加主窗口按钮。具体代码如下:

% 主窗口
mainFigure = uifigure('Name', '主窗口', 'Position', [100, 100, 400, 300]);
% 主窗口按钮
mainButton = uibutton(mainFigure, 'Text', '打开子窗口', 'Position', [150, 130, 100, 30], 'ButtonPushedFcn', @(src, event) openSubWindow(src));

 单击主窗口按钮会打开一个子窗口,主窗口布局如下:

三、子窗口

MATLAB 可以创建子窗口或模态对话框来实现类似子功能的弹窗。子窗口通常是通过 uifigureuipanel uitab 等 UI 组件创建的。我们可以在子窗口中添加按钮、文本框、图形等组件,以实现所需的功能。

创建一个子窗口函数\rightarrow创建子窗口\rightarrow在子窗口中添加按钮\rightarrow在子窗口中添加关闭按钮\rightarrow在子窗口中添加文本框。具体代码如下:

% 子窗口函数
function openSubWindow(~)% 创建子窗口subWindow = uifigure('Name', '子窗口', 'Position', [200, 200, 400, 250]);% 在子窗口中添加按钮subButton = uibutton(subWindow, 'Text', '启动程序', 'Position', [50, 150, 150, 30], 'ButtonPushedFcn', @(src, event) runFunction(src, subWindow));% 在子窗口中添加关闭按钮closeButton = uibutton(subWindow, 'Text', '关闭子窗口', 'Position', [250, 150, 100, 30], 'ButtonPushedFcn', @(src, event) closeSubWindow(src, subWindow));% 在子窗口中添加文本框resultTextArea = uitextarea(subWindow, 'Position', [50, 50, 300, 80]);
end

 子窗口中有两个按钮,第一个按钮可以启动相应的功能,第二个按钮可以用于关闭子窗口。子窗口布局如下:

四、调用函数并显示在子窗口中的文本框中

除了子窗口按钮事件外,有时候当子窗口中的按钮被点击时,我们想要调用一个函数,并将该函数的结果显示在子窗口中的文本框中,这样又该如何操作呢?

function runFunction(~, subWindow)% 调用需要执行的函数result = exampleFunction(subWindow);% 在子窗口中获取文本框对象resultTextArea = subWindow.Children(end-2); % 获取子窗口的倒数第三个子组件% 显示函数结果在文本框中resultTextArea.Value = ['Function Result: ' num2str(result)];
end

MATLAB R2021b及更早版本的uitextarea并不支持Value属性。我们可以使用Value的替代属性Text。当‘启动程序’被点击时,调用 runFunction 函数,该函数会执行 exampleFunction 并将结果显示在文本框中。当然我的博客只是做一个简单的示例,所以我的exampleFunction 在这里仅返回一个随机数,你可以替换为自己想要执行的功能。

五、关闭子窗口

我们可以根据实际需要在子窗口中添加更多的组件和功能。并且关闭子窗口时,只需调用 close(subWindow) 即可。 

% 关闭子窗口
close(subWindow);

博主的每篇博文都是用心去写的,喜欢的可以多多支持和收藏,创作不易,未经作者允许,请勿转载或者抄袭。因为抄袭风气盛行,故一些细节或者代码没有展示,敬请谅解。 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

通过K8S安装人大金仓数据库

1. 离线下载镜像&#xff0c;请点击 2. 官网下载镜像 https://www.kingbase.com.cn/xzzx/index.htm&#xff0c;根据自己的需求下载对应版本。 3. K8S需要的yaml清单 cat > kingbase.yaml << EOF apiVersion: apps/v1 kind: Deployment metadata:name: kingbase-…

每日OJ题_算法_双指针③_力扣202. 快乐数

目录 力扣202. 快乐数 解析代码 力扣202. 快乐数 202. 快乐数 - 力扣&#xff08;LeetCode&#xff09; 难度 简单 编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」 定义为&#xff1a; 对于一个正整数&#xff0c;每一次将该数替换为它每个位置上的数字的平方和…

Peter算法小课堂—贪心算法

课前思考&#xff1a;贪心是什么&#xff1f;贪心如何“贪”&#xff1f; 课前小视频&#xff1a;什么是贪心算法 - 知乎 (zhihu.com) 贪心 贪心是一种寻找最优解问题的常用方法。 贪心一般将求解过程分拆成若干个步骤&#xff0c;自顶向下&#xff0c;解决问题 太戈编程第…

yum源不起作用_yum无法安装程序_Linux默认源替换---Linux工作笔记067

今天在一台机器上进行安装yum install的时候提示,yum不可用,这时候,折腾了一会 后来更换了默认源就可以了. 首先: 可以看到原来的里面有个 yum.repos.d 里面放了很多源,但是这些源是不可以联网的. 是内网的源,所以,我对他进行了 mv yum.repos.d yum.repos.d.bak 重命名 然…

pycharm中py文件设置参数

在py文件中右键 直接对应复制进去即可

openGauss学习笔记-147 openGauss 数据库运维-备份与恢复-逻辑备份与恢复之gs_dump

文章目录 openGauss学习笔记-147 openGauss 数据库运维-备份与恢复-逻辑备份与恢复之gs_dump147.1 背景信息147.2 注意事项147.3 语法147.4 参数说明147.4.1 通用参数&#xff1a;147.4.2 转储参数&#xff1a;147.4.3 连接参数&#xff1a; 147.5 说明147.6 示例 openGauss学习…

Windows故障排除 – 连接WiFi却无法上网

Windows故障排除 – 连接WiFi却无法上网 Windows Troubleshooting - Connecting WiFi but PC Cannot Browse Internet By JacksonML 有个同学买了一台崭新的D品牌游戏本&#xff0c;i7处理器&#xff0c;英伟达RTX系列独立显卡及15寸液晶显示器&#xff0c;可谓功能强大。但是…

Ubuntu宝塔面板本地部署轻论坛系统HadSky并远程访问

文章目录 前言1. 网站搭建1.1 网页下载和安装1.2 网页测试1.3 cpolar的安装和注册 2. 本地网页发布2.1 Cpolar临时数据隧道2.2 Cpolar稳定隧道&#xff08;云端设置&#xff09;2.3 Cpolar稳定隧道&#xff08;本地设置&#xff09;2.4 公网访问测试 总结 前言 经过多年的基础…

系列八、SpringBoot中自定义SpringMVC配置

一、概述 作为Spring家族的明星产品&#xff0c;SpringBoot极大地简化了程序员的日常开发&#xff0c;提高了开发效率。我们很容易得借助于SpringBoot就可以快速开发业务代码。一般情况下&#xff0c;公司的日常开发都是基于web服务的&#xff0c;我们在使用idea等工具初始化一…

JavaScript如何实现按键音效、视频播放,标签分类切换横向滚动

1.使用HTML5的audio标签 &#xff08;音频播放&#xff09; <audio id"click-sound"><source src"audio/show.mp3" type"audio/mpeg"> </audio> <button id"button">按钮</button> var clickSound d…

Spring Boot的日志

打印日志 打印日志的步骤: • 在程序中得到日志对象. • 使用日志对象输出要打印的内容 在程序中得到日志对象 在程序中获取日志对象需要使用日志工厂LoggerFactory,代码如下: package com.example.demo;import org.slf4j.Logger; import org.slf4j.LoggerFactory;public c…

Arrays类练习 - Java

案例&#xff1a;自定义Book类&#xff0c;里面包含name和price&#xff0c;按price排序(从大到小)。要求使用两种方式排序&#xff0c;有一个 Book[] books 4本书对象。 使用前面学习过的传递实现Comparator接口匿名内部类&#xff0c;也称为定制排序。可以按照price (1)从大到…