【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.rhkb.cn/news/259620.html

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

相关文章

RIP协议详解

​RIP是最早的动态路由协议,虽然已经过时并且很少使用,但是可以通过学习RIP并且和ospf等现在正在使用的路由协议对比,了解其工作原理和过时原因,具有很强的学习性。 一、RIP协议简介 RIP(Routing Information Protoc…

2024.2.18 C++QT 作业

思维导图 练习题 1>定义一个基类 Animal&#xff0c;其中有一个虛函数perform&#xff08;)&#xff0c;用于在子类中实现不同的表演行为。 #include <iostream>using namespace std;class Animal { public:virtual void perform() {cout << "这是一个动…

css2的三大特性

css的三大特性 一.层叠性概念 二.继承性行高的继承 三. 优先级概念a标签默认蓝色继承注意事项 一.层叠性 概念 二.继承性 行高的继承 可用倍数表示三. 优先级 概念 a标签默认蓝色 继承注意事项 例子

使用倒模耳机壳UV树脂胶液制作HIFI耳机隔音降噪耳机壳有哪些缺点?

虽然使用倒模耳机壳UV树脂胶液制作HIFI耳机隔音降噪耳机壳有很多优点&#xff0c;但也存在一些缺点和需要注意的事项&#xff1a; 技术要求高&#xff1a;制作过程需要一定的技术和经验&#xff0c;如模具制作、树脂混合和填充等。如果没有足够的经验和技巧&#xff0c;可能会…

DS:八大排序之归并排序、计数排序

创作不易&#xff0c;感谢三连支持&#xff01;&#xff01; 一、归并排序 1.1 思想 归并排序&#xff08;MERGE-SORT&#xff09;是建立在归并操作上的一种有效的排序算法,该算法是采用分治法&#xff08;Divide andConquer&#xff09;的一个非常典型的应用。将已有序的子…

Python学习(16)|列表_遍历_排序_max_min_sum

列表的遍历&#xff1a; a [10,20,30,40] for obj in a: #obj 是临时变量名称&#xff0c;随意起名print(obj) 执行结果&#xff1a; 复制列表所有的元素到新列表对象&#xff1a; list1 [30,40,50] list2 list1 #只是将list2也指向了列表对象。也就是说list…

Maven - Plugins报错的正确解决之道

背景&#xff1a; 正确解决之道&#xff1a; 在自己本地Maven的安装目录中找到自己的仓库地址目录&#xff1a;直接搜索自己报错的插件文件&#xff0c;把它们删除&#xff0c;如图&#xff1a; 接着回到IDEA点击Maven刷新按钮重新加载即可&#xff1a;已解决 反例&#xff1…

SORA给数字孪生带来哪些启示

最近两天的朋友圈又被一则科技新闻刷屏了&#xff0c;那就是&#xff1a;OpenAI发布文生视频模型“Sora”。它是继ChatGPT之后&#xff0c;OpenAI又推出的一款震惊科技圈的产品&#xff0c;使AIGC向前迈了一大步。 数字孪生技术与AIGC&#xff08;人工智能生成内容&#xff09…

多元统计分析课程论文-聚类效果评价

数据集来源&#xff1a;Unsupervised Learning on Country Data (kaggle.com) 代码参考&#xff1a;Clustering: PCA| K-Means - DBSCAN - Hierarchical | | Kaggle 基于特征合成降维和主成分分析法降维的国家数据集聚类效果评价 目录 1.特征合成降维 2.PCA降维 3.K-Mean…

集结低代码/零代码行业大咖,2024年领域内首场重磅峰会火热开启!

低代码/零代码技术是一种创新的软件开发方法&#xff0c;旨在简化程序开发过程&#xff0c;使得即便是非专业开发者也能快速构建和部署应用程序。通过图形化界面和拖拽式操作&#xff0c;用户可以无需编写复杂的代码&#xff0c;就能完成应用程序的设计、开发和部署&#xff0c…

tsmc12:boundary cell/tap cell的align VIA0 grid

更多学习内容请关注「拾陆楼」知识星球 拾陆楼知识星球入口 往期文章链接: tsmc12:via0的spacing问题(Via0.S.1) tsmc12 OD.L.5 DRC tsmc12:boundary cell注意事项

2024年【R1快开门式压力容器操作】考试及R1快开门式压力容器操作考试内容

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 R1快开门式压力容器操作考试参考答案及R1快开门式压力容器操作考试试题解析是安全生产模拟考试一点通题库老师及R1快开门式压力容器操作操作证已考过的学员汇总&#xff0c;相对有效帮助R1快开门式压力容器操作考试内…

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Marquee组件

鸿蒙&#xff08;HarmonyOS&#xff09;项目方舟框架&#xff08;ArkUI&#xff09;之Marquee组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、Marquee组件 跑马灯组件&#xff0c;用于滚动展示一段单行文本&#xff0c;仅当…

在 Python 中,通过列表字典创建 DataFrame 时,若字典的 key 的顺序不一样以及部分字典缺失某些键,pandas 将如何处理?

&#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ pandas 是一个快速、强大、灵活且易于使用的开源数据分析和处理工具&#xff0c;它是建立在 Python 编程语言之上的。 pandas 官方文档地址&#xff1a;https://pandas.pydata.org/ 在 Python 中&…

多模态基础--- word Embedding

1 word Embedding 原始的单词编码方式&#xff1a; one-hot&#xff0c;维度太大&#xff0c;不同单词之间相互独立&#xff0c;没有远近关系区分。 wordclass&#xff0c;将同一类单词编码在一起&#xff0c;此时丢失了类别和类别间的相关信息&#xff0c;比如class1和class3…

小游戏和GUI编程(7) | SimpleNN 界面源码解析

小游戏和GUI编程(7) | SimpleNN 界面源码解析 0. 简介 SimpleNN 是 AdamYuan 在高中一年级时用 1 天时间写出来的简易 CNN, 使用 SFML 做 UI, 用于交互式输入手写数字&#xff0c;这个数字被训练好的 CNN 网络执行推理得到识别结果, 它的运行效果如下&#xff1a; 这一篇我们…

java客运管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java客运管理系统是一套完善的java web信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysql5.0&#…

安装Joplin Server私有化部署(docker)

安装Joplin Server私有化部署(docker) 前言: 老规矩官方文档链接 1. 首先拥有一个自己的云服务器(如果没有外网访问需求的话就随意吧) 安装docker安装方式 这里Joplin是使用PostgreSQL数据库的形式, 如果没有PostgreSQL库的话, Joplin默认使用的是SQLLite数据库 我这里使用的是…

Shiro-11-web 介绍

配置 将Shiro集成到任何web应用程序的最简单方法是在web.xml中配置一个Servlet ContextListener和过滤器&#xff0c;该Servlet了解如何读取Shiro的INI配置。 INI配置格式本身的大部分是在配置页面的INI部分中定义的&#xff0c;但是我们将在这里介绍一些额外的特定于web的部…

入门级10寸加固行业平板—EM-I10J

亿道信息以其坚固耐用的智能终端设备而闻名&#xff0c;近日发布了一款理想入门级 10 英寸加固平板电脑—I10J。 EM-I10J​​ 这是一款 10 英寸的平板电脑&#xff0c;主要运行 Windows 10操作系统&#xff0c;带有硬化塑料外壳&#xff0c;具有 IP65 防水防尘功能和 MIL-STD 8…