【MATLAB GUI】 1. 普通按钮、静态文本和可编辑文本

看B站up主freexyn的freexyn编程实例视频教程系列36Matlab GUI的学习笔记

文章目录

  • 初步认识+普通按钮
  • 静态文本和可编辑文本
  • 设计一个简易计算机

初步认识+普通按钮

任务要求:点击一次“100”按钮,按钮上的文字值就递增1;点击“close”按钮,关闭所有窗口

  1. 命令行打开GUI:命令行guide,或者appdesigner

  2. 如果左边方块没有文字说明,则点击文件-预设-在组件选项板中显示名称-确定
    在这里插入图片描述
    在这里插入图片描述

  3. 调整设计界面大小,点击普通按钮,拉到设计界面,调整普通按钮大小

    在这里插入图片描述

  4. 双击这个普通按钮,或者右键点击属性,修改String、FontSize等内容。修改完毕后点击×号退出
    在这里插入图片描述

  5. 重复以上操作,得到以下
    在这里插入图片描述

  6. 点击保存,命名为test1.fig,同时自动生成test1.m文件

  7. 对于test1.m文件:

    **function varargout = test1(varargin)**
    % TEST1 MATLAB code for test1.fig
    %      TEST1, by itself, creates a new TEST1 or raises the existing
    %      singleton*.
    %
    %      H = TEST1 returns the handle to a new TEST1 or the handle to
    %      the existing singleton*.
    %
    %      TEST1('CALLBACK',hObject,eventData,handles,...) calls the local
    %      function named CALLBACK in TEST1.M with the given input arguments.
    %
    %      TEST1('Property','Value',...) creates a new TEST1 or raises the
    %      existing singleton*.  Starting from the left, property value pairs are
    %      applied to the GUI before test1_OpeningFcn gets called.  An
    %      unrecognized property name or invalid value makes property application
    %      stop.  All inputs are passed to test1_OpeningFcn via varargin.
    %
    %      *See GUI Options on GUIDE's Tools menu.  Choose "GUI allows only one
    %      instance to run (singleton)".
    %
    % See also: GUIDE, GUIDATA, GUIHANDLES% Edit the above text to modify the response to help test1% Last Modified by GUIDE v2.5 18-Feb-2024 15:21:53% Begin initialization code - DO NOT EDIT
    gui_Singleton = 1;
    gui_State = struct('gui_Name',       mfilename, ...'gui_Singleton',  gui_Singleton, ...'gui_OpeningFcn', @test1_OpeningFcn, ...'gui_OutputFcn',  @test1_OutputFcn, ...'gui_LayoutFcn',  [] , ...'gui_Callback',   []);
    if nargin && ischar(varargin{1})gui_State.gui_Callback = str2func(varargin{1});
    endif nargout[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
    elsegui_mainfcn(gui_State, varargin{:});
    end
    % End initialization code - DO NOT EDIT% --- Executes just before test1 is made visible.
    function test1_OpeningFcn(hObject, eventdata, handles, varargin)
    % This function has no output args, see OutputFcn.
    % hObject    handle to figure
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    % varargin   command line arguments to test1 (see VARARGIN)% Choose default command line output for test1
    handles.output = hObject;% Update handles structure
    guidata(hObject, handles);% UIWAIT makes test1 wait for user response (see UIRESUME)
    % uiwait(handles.figure1);% --- Outputs from this function are returned to the command line.
    function varargout = test1_OutputFcn(hObject, eventdata, handles) 
    % varargout  cell array for returning output args (see VARARGOUT);
    % hObject    handle to figure
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)% Get default command line output from handles structure
    varargout{1} = handles.output;% --- Executes on button press in pushbutton1.
    function pushbutton1_Callback(hObject, eventdata, handles)
    % hObject    handle to pushbutton1 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)% --- Executes on button press in pushbutton2.
    function pushbutton2_Callback(hObject, eventdata, handles)
    % hObject    handle to pushbutton2 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    
    1. function varargout = test1(varargin):函数名称即文件名称,包含了方才设计的图形文件的一些初始化信息,不要修改

    2. function test1_OpeningFcn(hObject, eventdata, handles, varargin):回调函数,当打开一个图形文件的时候,所有的控件数据都设置好了之后,把图形界面呈现在电脑屏幕之前,该函数运行,对界面进行一些初始化处理

    3. function varargout = test1_OutputFcn(hObject, eventdata, handles) :输出函数,有输出参数,在打开函数OpeningFcn()返回控制之后,把控制权返回给命令行窗口之前,执行该函数,执行结果会输出到命令行窗口中

    4. pushbutton1_Callback、pushbutton2_Callback:两个组件的回调函数,在图形界面点击按钮会执行对应回调函数,其中的pushbutton1、pushbutton2对应组件的Tag

      function pushbutton1_Callback(hObject, eventdata, handles)
      %hObject是点击对象的句柄,即点击“100”按钮时,会返回这个按钮的句柄,
      %以此来区分点击对象是“100”,而不是“close”%eventdata是一个保留字段,在不同的控件中有不同用法,在按钮中其实是没什么意义的%handles是结构数组,包含整个界面控件信息以及数据信息
      
  8. 现在回到设计界面

  9. 给close按钮添加回调:对“close”按钮点击右键,查看回调,单击callback,会定位到.m文件中的对应位置,进行代码编辑,保存

    % --- Executes on button press in pushbutton2.
    function pushbutton2_Callback(hObject, eventdata, handles)
    % hObject    handle to pushbutton2 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    clear all %清除所有变量
    close all %关闭所有窗口
    

    点击.fig页面中的绿色三角形,运行,点击运行界面的“close”,图形窗口就关闭了

  10. 给100按钮添加回调:要求实现点击一次“100”按钮,按钮上的文字值就递增1。步骤同上

    % --- Executes on button press in pushbutton1.
    function pushbutton1_Callback(hObject, eventdata, handles)
    %hObject是点击对象的句柄,即点击“100”按钮时,会返回这个按钮的句柄,
    %以此来区分点击对象是“100”,而不是“close”
    %eventdata是一个保留字段,在不同的控件中有不同用法,在按钮中其实是没什么意义的
    %handles是结构数组,包含整个界面控件信息以及数据信息%get(h,属性)获得图形对象h上的属性值,是字符串格式
    s=get(hObject,'string');%set(h,Name,Value) 使用一个或多个名称-值参数设置指定图形对象h的属性
    set(hObject,'string',num2str(str2num(s)+1));
    

静态文本和可编辑文本

任务要求实现:在可编辑文本中输入文字,回车,立即显示在静态文本框中

  1. 可编辑文本:可以输入内容

  2. 静态文本:仅用于显示字符

  3. 界面设计如下:属性不做修改,保存为test2.fig
    在这里插入图片描述

  4. 双击.fig页面中的可编辑文本,点击查看回调,点击callback

  5. 自动定位到.m文件中的edit1_Callback,根据任务要求进行代码编辑

    function edit1_Callback(hObject, eventdata, handles)
    % hObject    handle to edit1 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)% Hints: get(hObject,'String') returns contents of edit1 as text
    %        str2double(get(hObject,'String')) returns contents of edit1 as a doubles=get(hObject,'string');
    %handles包含整个界面控件信息以及数据信息,
    %**handles.text2即引用了另一个控件的数据,text2是静态文本框的tag值**
    set(handles.text2,'string',s);
    

    handles可帮忙引用其他控件的数据

  6. 保存.m,在.fig界面运行即可
    在这里插入图片描述

设计一个简易计算机

普通按钮、静态文本和可编辑文本的综合运用

  1. 先用普通按钮设计,属性只修改string

    在这里插入图片描述

  2. 增加静态文本:属性修改backgroungcolor,防止和页面背景融为一体,同时把string删除。该框用于显示计算过程和结果

    在这里插入图片描述

  3. 编写各个普通按钮的回调函数:任务要求把计算过程和结果在静态文本框中显示出来

    1. 0~9和+、-、/的按钮

      % --- Executes on button press in pushbutton1.
      function pushbutton1_Callback(hObject, eventdata, handles)
      % 如果只是
      % s=get(hObject,'string');
      % set(handles.text2,'string',s);
      % 则会导致无法输入11,只能输入1
      s0=get(handles.text2,'string');
      s=get(hObject,'string');
      set(handles.text2,'string',[s0,s]);
      
    2. ×的按钮:×不能运算,*才可以运算

      % --- Executes on button press in pushbutton16.
      function pushbutton16_Callback(hObject, eventdata, handles)
      % hObject    handle to pushbutton16 (see GCBO)
      % eventdata  reserved - to be defined in a future version of MATLAB
      % handles    structure with handles and user data (see GUIDATA)
      s0=get(handles.text2,'string');
      s=get(hObject,'string');
      set(handles.text2,'string',[s0,'*']);
      
    3. =和C的按钮

      % --- Executes on button press in pushbutton18.
      function pushbutton18_Callback(hObject, eventdata, handles)
      % hObject    handle to pushbutton18 (see GCBO)
      % eventdata  reserved - to be defined in a future version of MATLAB
      % handles    structure with handles and user data (see GUIDATA)
      s0=get(handles.text2,'string');
      %eval(expression)返回 expression 的输出,数值型
      set(handles.text2,'string',num2str(eval(s0)));% --- Executes on button press in pushbutton19.
      function pushbutton19_Callback(hObject, eventdata, handles)
      % hObject    handle to pushbutton19 (see GCBO)
      % eventdata  reserved - to be defined in a future version of MATLAB
      % handles    structure with handles and user data (see GUIDATA)
      set(handles.text2,'string',[]);
      

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

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

相关文章

UniApp中打开蓝牙所需哪些权限

Hello,各位同学们新年好呀,咱们又见面了!我是咕噜铁蛋!随着移动应用的普及,蓝牙技术正变得越来越重要。在UniApp中,打开蓝牙功能为我们提供了更多便利和创新的可能性。然而,很多人可能不清楚在U…

【计算机网络】socket 网络套接字

网络套接字 一、端口号1. 认识端口号2. socket 二、认识TCP协议和UDP协议1. TCP协议2. UDP协议 三、网络字节序四、socket 编程1. socket 常见API2. sockaddr 结构3. 编写 UDP 服务器(1)socket()(2)bind()(3&#xff0…

【Unity编辑器扩展】Unity编辑器主题颜色设置工具

可以用来应用和自定义你的Unity编辑器。14个主题可供选择。轻松创建自己的主题。 主题展示:

明御运维审计与风险控制系统漏洞复现

简介 明御运维审计与风险控制系统是安恒信息在多年运维安全管理的理论和实践经验积累的基础上,采用B/S架构,集“身份认证、账户管理、控制权限、日志审计”于一体,支持多种字符终端协议、文件传输协议、图形终端协议、远程应用协议的安全监控与历史查询,具备全方位运维风险…

ChatGPT丨“成像光谱遥感技术中的AI革命:ChatGPT应用指南“

遥感技术主要通过卫星和飞机从远处观察和测量我们的环境,是理解和监测地球物理、化学和生物系统的基石。ChatGPT是由OpenAI开发的最先进的语言模型,在理解和生成人类语言方面表现出了非凡的能力。本文重点介绍ChatGPT在遥感中的应用,人工智能…

【医学大模型】临床推理 + 大模型,推理感知型诊断框架

临床推理 大模型,推理感知型诊断框架 提出背景Module II-1: 少数样本CoT推理Module II-2: 单模态学生蒸馏Module II-3: 多模态学生蒸馏 提出背景 论文:https://arxiv.org/pdf/2312.07399.pdf 这篇文章提出了一种新的诊断框架,专注于利用大型…

Android T 远程动画显示流程其二——动画的添加流程(更新中)

前言 接着上篇文章分析 Android T 远程动画显示流程其一 切入点——处理应用的显示过渡 下面,我们以从桌面点击一个应用启动的场景来分析远程动画的流程,窗口添加的流程见Android T WMS窗口相关流程 这里我们从AppTransitionController.handleAppTran…

HAL STM32 HW I2C DMA + SSD1306/SH1106驱动示例

HAL STM32 HW I2C DMA SSD1306/SH1106驱动示例 📍硬件I2C DMA驱动参考:https://blog.csdn.net/weixin_45065888/article/details/118225993 📌github上的相关项目:https://github.com/taburyak/STM32_OLED_SSD1306_HAL_DMA &am…

五种多目标优化算法(MOGWO、MOJS、NSWOA、MOPSO、MOAHA)性能对比,包含6种评价指标,9个测试函数(提供MATLAB代码)

一、5种多目标优化算法简介 1.1MOGWO 1.2MOJS 1.3NSWOA 1.4MOPSO 1.5MOAHA 二、5种多目标优化算法性能对比 为了测试5种算法的性能将其求解9个多目标测试函数(zdt1、zdt2 、zdt3、 zdt4、 zdt6 、Schaffer、 Kursawe 、Viennet2、 Viennet3)&#xff0…

Linux服务器安装MySQL8

进入安装目录 /usr/local下载 wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz解压,重命名 tar -Jxvf mysql-8.0.20-linux-glibc2.12-x86_64.tar.xzmv mysql-8.0.20-linux-glibc2.12-x86_64 mysql8创建用户组、用户 # 需要…

fastApi笔记01-路径参数

路径参数 使用与 Python 格式化字符串相同的语法来声明路径"参数"或"变量" from fastapi import FastAPIapp FastAPI()app.get("/items/{item_id}") def read_item(item_id):return {"item_id": item_id} http://127.0.0.1:8000/i…

SpringSecurity安全框架

我们使用这个springSecurity安全框架,作用是认证,授权,将用户的权限和对应的资源进行绑定,默认的是在内存中保存的,实际开发中,是需要根据项目业务的需求对某些方法进行重写,使数据库中权限对应的资源进行绑定,就是查看当前登录的用户所扮演的角色,该角色有哪些权限 授权 1内…

【操作系统】

计算机操作系统 计算机是如何让用户得到好的体验什么是操作系统(OS)操作系统如何管理 计算机是如何让用户得到好的体验 计算机系统是由计算机硬件和软件组成的。用户使用计算机,比如在文本文件填写内容,通过邮箱发送邮件&#xf…

Aloudata StarRocks 直播预告:指标平台的物化加速实践

数据指标的管理、研发和应用一直存在着诸多痛点,这些挑战促使了对指标平台解决方案的需求不断增长。2月29日(星期四)19:00,Aloudata 将与 StarRocks 携手举办线上直播,深入揭秘第三代指标平台物化加速的强大能力&#…

大蟒蛇(Python)笔记(总结,摘要,概括)——第10章 文件和异常

目录 10.1 读取文件 10.1.1 读取文件的全部内容 10.1.2 相对文件路径和绝对文件路径 10.1.3 访问文件中的各行 10.1.4 使用文件的内容 10.1.5 包含100万位的大型文件 10.1.6 圆周率中包含你的生日吗 10.2 写入文件 10.2.1 写入一行 10.2.2 写入多行 10.3 异常 10.3.1 处理Ze…

基于springboot+vue的课程答疑系统(前后端分离)

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 ​主要内容:毕业设计(Javaweb项目|小程序|Pyt…

外站群服务器的特性及使用优势

随着互联网的快速发展,站群服务器在网站运营中扮演着越来越重要的角色。相较于国内站群服务器,国外站群服务器因其独特的特性和使用优势,受到了众多网站管理员的青睐。本文将对国外站群服务器的特性及使用优势进行科普介绍。 一、国外站群服务…

【Spring Cloud】实现微服务调用的负载均衡

文章目录 什么是负载均衡自定义实现负载均衡启动shop-product微服务通过nacos查看微服务的启动情况自定义实现负载均衡 基于Ribbon实现负载均衡添加注解修改服务调用的方法Ribbon支持的负载均衡策略通过修改配置来调整 Ribbon 的负载均衡策略通过注入Bean来调整 Ribbon 的负载均…

JS进阶——解构赋值

数组解构 基本: let [a, b, c] [1, 2, 3]; // a 1 // b 2 // c 3 可嵌套 let [a, [[b], c]] [1, [[2], 3]]; // a 1 // b 2 // c 3 可忽略 let [a, , b] [1, 2, 3]; // a 1 // b 3 不完全解构 let [a 1, b] []; // a 1, b undefined 剩余运…

如何创造价值写给自己的笔记

人工智能统领全文 在深入探讨这篇概述之前,我们首先需要理解一个核心观点:生产力的进步与生产关系的变革是相辅相成的。这一点在历史的长河中不断得到验证,从工业时代到信息时代,再到如今由人工智能引领的新时代,每一…