【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,一经查实,立即删除!

相关文章

Python语言例题集(006)

#!/usr/bin/python3 #建立一个含3个节点的链表,然后打印此链表。 class Node(): def init(self,dataNone): self.datadata self.nextNone n1Node(5) n2Node(15) n3Node(25) n1.nextn2 n2.nextn3 ptrn1 while ptr: print(ptr.data) ptrptr.next

[精通linux]-302- linux 高级命令

查看bash类型 $ echo $0 #输出位zsh或者bash查看命令类型 $ type ls # 输出 ls is an alias for ls -G重定向 学会使用 > 和 < 来重定向输出和输入,学会使用 | 来重定向管道。明白 > 会覆盖了输出文件而 >> 是在文件末添加。 任务管理器 熟悉 Bash 中的任…

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

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

物联网土壤传感器简介

物联网土壤传感器简介 物联网土壤传感器的工作原理基于多种物理、化学和生物原理&#xff0c;通过感应器等组成部件将土壤中的特征数据转化为电信号&#xff0c;从而进行采集、处理和输出。这些传感器主要包括土壤湿度传感器、土壤温度传感器、土壤酸碱度传感器和土壤颗粒物传…

Sora是什么?Sora怎么使用?OpenAI最新文字转视频AI模型Sora,一句子生成60秒超逼画面

Sora 是 OpenAI 开发的AI视频生成模型&#xff0c;它能够根据用户的文本描述生成长达 60 秒、1080P 高质量视频&#xff0c;其中包含精细复杂的场景、生动的角色表情以及复杂的镜头运动。 Sora能够创造出包含多个角色、特定动作类型以及与主题和背景相符的详细场景。这款模型不…

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

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

8080端口占用与解决

记录一下 j​​​​​​​http://t.csdnimg.cn/Pslch

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

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

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

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

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

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

CSS :has() 能解决什么问题?

CSS:has()伪类选择器能够解决的问题主要包括以下几点&#xff1a; 父级选择器的应用&#xff1a;:has()选择器允许开发者根据一个元素的后代或任何后续元素来确定其样式&#xff0c;从而实现了父级样式的选择。这对于需要根据元素的后代元素来调整父元素样式的场景非常有用。 …

雪花算法生成分布式主键ID

直接上代码&#xff0c;复制即可使用 public class SnowflakeIdGenerator {private static final long START_TIMESTAMP 1624000000000L; // 设置起始时间戳&#xff0c;2021-06-18 00:00:00private static final long DATA_CENTER_ID_BITS 5L;private static final long WO…

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

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

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

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

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

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

C++知识点总结(19):高级贪心算法

高级贪心算法 一、P1803 活动安排1. 审题2. 思路2.1 最优区间挑选方法2.2 分配时间方法2.3 排序方法 3. 参考答案 二、P1094 纪念品分组1. 审题2. 思路2.1 每组多少个方法2.2 搭配的方法 3. 参考答案 三、村民打水1. 审题2. 思路3. 参考答案 四、习题1. 服务等待1.1 审题1.2 参…

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

一、5种多目标优化算法简介 1.1MOGWO 1.2MOJS 1.3NSWOA 1.4MOPSO 1.5MOAHA 二、5种多目标优化算法性能对比 为了测试5种算法的性能将其求解9个多目标测试函数&#xff08;zdt1、zdt2 、zdt3、 zdt4、 zdt6 、Schaffer、 Kursawe 、Viennet2、 Viennet3&#xff09;&#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内…