MATLAB的GUI设计——计算器

article/2025/10/5 17:20:18

出于兴趣爱好自学了一段时间的MATLAB,然后学习自制了一个属于自己的一个计算器,现在将我的第一个GUI分享给大家。(MATLAB版本为R2019a)

一、准备工作

①首先在MATLAB中的命令行窗口输入guide,之后会出现如下界面,
在这里插入图片描述
点击第一个Blank GUI(Default)便可出现GUI编辑界面,如下图所示
在这里插入图片描述
之后就可以开始布局属于自己的计算机页面了。

二、开始工作

有了之前的界面,我们就可以开始布局属于我们的计算器了,首先给大家看看我的界面。
在这里插入图片描述
下面手把手教大家怎么创建属于自己的机界面。
****第一步:可编辑文本(有些同学是英文版本的,可以自己翻译一下找到所对应的按钮)在这里插入图片描述
点击可编辑文本,随后自己拖动(大小可自己改变),就会出现如下一个长条(我的界面右边那个)。

在这里插入图片描述
然后双击这个文本,便可以看到下图。
在这里插入图片描述
在这个里面,我们主要注意四点:①BackgroundColor,这个可以改变文本框的背景颜色,可以调整你喜欢的颜色。
②FontSize,这个可以改变你的显示字体的大小默认是8.0,你可以改成16.0,直接在右边数字上修改就行了。
③String,这个是可以修改的,在我的界面中我直接将可编辑文本这五个字删除了,可以根据你喜欢的来。
④Tag(标签):这个最重要了,因为这个表示的是这个可编辑文本框的系统中的名字,等会儿编程的时候要用到。
讲到这里,相信大家的可编辑文本框已经弄好了。
****第二步:设置普通按钮
像上一步一样,大家可以点击普通按钮按键,然后放置,可以根据自己的喜好调整位置,也可以根据自己想要的功能添加。
在这里插入图片描述
你想要几个按钮你就自己点几个按钮,然后就可以修改每个按钮的名字了,(我的建议是你点一个按钮你就修改一下,免得弄混了)。双击你放置的按钮,会出现如下界面。
在这里插入图片描述
在这里你可以修改比如,我修改FontSize,还有BackgroundColor,以及String(按钮名字)。
比如我把背景颜色换成了青色,字体设置成了16.0,String那一块设置成了‘10’。如下图所示。
在这里插入图片描述

三、程序演练以及代码编写

在这里插入图片描述
点击运行图窗这个按钮,会得到以下界面。
在这里插入图片描述
这个是我的界面,点击按钮之后你会发现文本框里什么都不会显示,这是因为我们还没有编写代码,但是你每一个按键都能按动,计算器的雏形已经开始显现,接下来就是编写程序了。回到你设计好的计算器的界面,
在这里插入图片描述
用鼠标右键点击数字1,将光标移到查看回调会出现如下界面,

在这里插入图片描述
点击Callback,会出现如下代码:

% --- Executes on button press in pushbutton22.
function pushbutton22_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton22 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

这些都是系统自动生成的,我们之所以在运行之后按下按钮没有显示数字就是因为我们没有在这个函数中编写相应的代码。
(pushbutton22是我的界面中数字‘1’按钮的名字,应该每个人的都不一样),我们在这五行代码中,加上下面三行代码,

textString = get(handles.edit1,'String');
textString = strcat(textString,'1');
set(handles.edit1,'String',textString);

再回到界面去运行你所设计的界面,你会发现,你按下按钮‘1’后,会在文本框中中显示1,你按下多少次,就会显示多少次1。如下图。
在这里插入图片描述
按钮1的完整代码如下:

% --- Executes on button press in pushbutton22.
function pushbutton22_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton22 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
textString = get(handles.edit1,'String');
textString = strcat(textString,'1');
set(handles.edit1,'String',textString);

下面来解释一下:首先需要声明的是:handle是一个结构体,同一个.fig下的所有控件,均可挂在handle下。
textString = get(handles.edit1,‘String’);
这句代码的意思是获取可编辑文本框的字符串,并保存在textString中,至于edit1我上面也解释了,点击可编辑文本框,你的可编辑文本框中Tag是什么,这里就打上什么,比如有可能是edit5。
textString = strcat(textString,‘1’);
先明白strcat函数的定义:strcat 即 Strings Catenate,横向连接字符串。
这句代码的意思是将textString中的字符串内容和‘1’连起来,比如你textString中有一个1,在按下按钮1,这时候这个函数就会把两个1连起来,变成11.
set(handles.edit1,‘String’,textString);
这句代码的意思是将textString中的内容以字符串的形式显示在edit1上,也就是显示在可编辑文本框上。
在这个基础上,我们就会编写按钮0-9的代码了,只需要重复上述操作,再将代码中的数字‘1’,改成相应按钮的数字就可以了。比如按钮2的代码为:

% --- Executes on button press in pushbutton23.
function pushbutton23_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton23 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
textString = get(handles.edit1,'String');
textString = strcat(textString,'2');
set(handles.edit1,'String',textString);

之后再运行界面,按下相应的按钮,比如从按钮1按到按钮9,便会得到以下界面:
在这里插入图片描述
加减乘除(±*/)、小数点(.)、平方(^)的代码如下图所示:

% --- Executes on button press in pushbutton31.
function pushbutton31_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton31 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
textString = get(handles.edit1,'String');
textString = strcat(textString,'+');
set(handles.edit1,'String',textString);

跟按钮0-9一样的改法,只需要将其中的符号换一下就好了,比如平方的代码如下:

% --- Executes on button press in pushbutton37.
function pushbutton37_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton37 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
textString = get(handles.edit1,'String');
textString = strcat(textString,'^2');
set(handles.edit1,'String',textString);

*然后讲一下按钮‘=’的代码,代码如下所示: *

% --- Executes on button press in pushbutton36.
function pushbutton36_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton36 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
textString = get(handles.edit1,'String');
ans = eval(textString);
set(handles.edit1,'String',ans);

第一句是一样的,获取编辑框中的字符。
第二句,大家可以在命令行窗口输入help eval获取到eval函数的使用方式,这里我就不贴出来了,通俗易懂地说,就是eval函数会直接执行eval()括号中的内容,比如你再命令行打上eval(‘8+9’),你会得到ans = 17,这里的代码的意思是我得到textString中的内容后,直接丢到eval的扩上中,然后会给我们直接执行括号里面的内容,进行计算。
第三句话的意思就是将结果ans以字符串的方式显示在文本编辑框中。

按钮C(clear清除)的代码:

% --- Executes on button press in pushbutton39.
function pushbutton39_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton39 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
set(handles.edit1,'String','');

就是将文本框设置一个空格字符。
按钮Quit(停止退出)的代码:

% --- Executes on button press in pushbutton40.
function pushbutton40_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton40 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
close(gcf);

直接关掉当前图形句柄。

BACK(退回)按钮的代码:

% --- Executes on button press in pushbutton38.
function pushbutton38_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton38 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
textString = get(handles.edit1,'String');
str = char(textString);
value = length(str);
textString = str(1:value-1);
set(handles.edit1,'String',textString);

第一句代码依旧是获取edit上字符串的内容
第二句代码是将字符串通过char()函数变成字符向量,通过MATLAB中的命令行窗口输入help char可以得到如下信息
A =
“Pythagoras”
使用 char 函数将 A 转换为字符向量。MATLAB 可以显示带有单引号的字符向量。
C = char(A)
C =
'Pythagoras’

第三句代码是获取str的长度。
第四句是显示字符向量的1到(value-1)位,比如你按下123三个按钮,再按一下BACK按键,可以看到文本框中只有12了。
第五局依旧是将textString的内容转换成字符串显示到文本框中。

四、结果演示

MATLAB-基于GUI的简易计算器的实现

五、总结和分享

谢谢大家抽空看我写的这篇文章,希望大家一起学习,一起进步,这篇文章有什么不足之处,请大家加以批评指正和补充,谢谢大家!


http://chatgpt.dhexx.cn/article/1BIhRp7k.shtml

相关文章

MATLAB 编写一个简单的GUI

MATLAB作为一个使用方便、容易上手的工具,也经常用来进行相关项目的结果展示 本次博客讲解一下如何创建一个简单的GUI 首先,启动matlab,在命令窗口输入 guide 在弹出的窗口选择 Blank GUI 在随后弹出的窗口中,左侧是工具栏&#…

Matlab GUI组件详解

1、触控按钮(Push Button) 在Push Button 上双击调用属性查看器可以查看和设置Push Button 的所有属性Push Button 对象的常用属性见下表。 2、静态文本(Static Text) Static Text 通常用于显示其他对象的数值状态等Static Text…

MATLAB创建GUI

1.matlab命令行输入guide,新建GUI图形界面,或者新建–应用程序–GUIDE,选择Blank GUI,选择路径。 2.在图形界面点击左侧控件和组件构建图形界面。 主要用到的控件和组件: (1)按钮(选…

MATLAB GUI实现计算器(设计)

文章目录 1.先打开matlab新建GUI文件2.选择路径(左边是默认的不用改)3.此时界面会弹出一个小框4.建立计算器界面(贴上我设计的界面,不许嘲笑我的设计)5.细致讲解一下,这里的按键和显示框的是怎么实现的6.把…

MATLAB GUI笔记(一):按钮的使用

笔记一是简单地介绍按钮的使用,通过点击按钮实现传递字符串的功能来简单了解按钮的用法。 目录 笔记一是简单地介绍按钮的使用,通过点击按钮实现传递字符串的功能来简单了解按钮的用法。1. 打开GUI界面2. 选择Blank GUI3. 将按钮拖动出来4. 选择可编辑文…

带你从零开始,快速学会 Matlab GUI

本文来自作者 木木小迷哥 在 GitChat 上分享「Matlab GUI 零基础学员快速入门」,「阅读原文」查看交流实录 「文末高能」 编辑 | 洛肯 Matlab广泛地应用于数学分析、计算、自动控制、系统仿真、数字信号处理、图像处理、数理统计、人工智能、通信工程和金融系统等领…

如何用Matlab设计GUI?

如何用matlab设计gui? | TinTin 什么是GUI?matlab编程可以设计GUI吗? GUI定义:GUI指的是图形用户界面(Graphical User Interface,GUI),也称之为图形用户接口,GUI是用图形化方式显示…

Matlab GUI界面使用方法(一):打开GUIGUI常用控件(最基础)

GUI界面能够为我们的matlab代码提供一些有好的交互界面,下面是matlab中gui界面的一些使用方法(因为我在使用gui时,常常因为找不到一些控件的使用方法或某些功能的实现方法,所以在此为大家提供一些我遇到过的问题的解决方法&#x…

【MATLAB学习笔记——GUI】

Matlab中GUI 学习笔记 虽然打开matlab后提示说GUI后续版本会取消(以后的版本中将会删除 GUIDE。请改用 APPDESIGNER。 ),但是老师布置了matlab GUI实验,所以说还得学习学习,所以记录学习过程,学习笔记。 …

MATLAB:简单GUI的设计流程

下面来介绍一下关于MATLAB中如何设计个性化GUI界面的流程: 1、首先打开MATLAB软件如下: 2、在 主页下的“新建”选项中选择新建一个图形用户界面(GUI),结果如下: 3、这是我们选择第一个“Blank GUI&#x…

图像处理 Matlab GUI系统(全)

目录 导读 数字图像处理系统 GUI实例设计 总结 【若觉文章质量良好且有用,请别忘了点赞收藏加关注,这将是我继续分享的动力,万分感谢!】 导读 以数字图像处理系统设计为例,介绍GUI系统的设计流程,同时…

MATLAB之GUI界面介绍与搭建

作为图形用户界面(GUI)的小白,先来了解一下GUI界面的内容: MATLAB中常用的是利用guide命令搭建GUI界面。 第一步: 命令行窗口输入>>guide 第二步:弹出GUIDE快速入门窗口,选择新建GUI(同理…

Matlab制作GUI

效果图 图1.主界面 图2.其中一个子界面 具体步骤 1.界面设置 输入guide并选中运行 2.菜单设置(图1上方) 3.背景图片 参考https://blog.csdn.net/leo0308/article/details/82694995 4.界面跳转 在自动生成的Untitled_5_Callback末尾加一句set&am…

Matlab写的第一个GUI程序(程序设计,界面设计)

写在前面:博主用的Matlab版本是2016b,属于旧版本,大概在2019版本开始属于新版本叭,新版本写程序在APP菜单有设计APP这个选项,旧版本的则是在主页的新建选项下有GUI选项 目录 1.新建项目 1.1找到入口 1.2项目模板选择…

Matlab GUI界面设计

摘要:本篇博文基于MATLAB2014a进行GUI设计。 1.启动GUI设计 命令行输入guide,回车。 即可得到下面的对话框,进行相关的选择和设置 点击确定,得到两个文件,一个是.m文件,另一个是.fig文件,需要…

MATLAB(6)GUI应用介绍

目录 GUI编辑器控件属性回调函数 MATLAB常见的控件普通按钮切换按钮可编辑文本字符获取字符显示 复选框单选按钮弹出式菜单滑动条列表框表坐标区 附录各文件共享数据保存获取 GUI编辑器 MATLAB的GUI编辑器在命令行窗口输入“guide”启动,选择模板并点击确定后创建对…

matlab设计GUI可视化界面全方位解析

如何使用matlab设计GUI及导出 一、GUI的基础知识开始生成GUI界面回调函数Handles结构体GUI中的参数传递 二、控件介绍一、普通按钮二、可编辑文本(edit)和静态文本(text)三、单选框(radiobutton)和复选框&a…

matlabGUI入门

matlabGUI入门 前言1 基础知识1.1 函数1.2 数据类型1.3 绘图1.4 其它 2 GUIDE2.1 创建GUI界面2.2 模板选择2.3 控件2.4 对象浏览器2.5 回调函数2.6 属性检查器2.7 数据传输 前言 由窗口、菜单、图标、光标、按键、对话框和文本等各种图形对象组成的用户界面叫作图形用户界面&a…

matlab gui编程教程,matlab如何使用gui

如何在Matlab中打开GUI工具 两种方法1、输入guide回车。2、在工具栏里点击带笔形的gui。 为Matlab的GUI添加启动画面:添加启动画面,启动画面中可以添加想要添加的图像……VisualC可以实现这个功能,Matlab也可以实现,具体如下&am…

Matlab系列之GUI设计基础

Matlab系列之GUI设计基础 简介编辑界面菜单设计控件设计控件描述个人理解Matlab转译 控件属性【1】外观与行为【2】控件对象的信息【3】回调函数【4】状态信息 结束更多精彩,等你发现~ 简介 GUI即图形用户界面(Graphical User Interface),人…