MATLAB 使用GUI设计简单的计算器

article/2025/1/18 17:16:32

文章目录

  • 1.准备工作
  • 2.使用GUI功能创建计算器界面
    • 2.1 打开GUI设计界面
    • 2.2 编辑运行框
    • 2.3 设置按钮
  • 3.为每个按钮设定函数功能
  • 4.结果演示
  • 5.总结与反思

1.准备工作

本文使用的版本是Matlab2018b。
了解GUI:图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。
该GUI实现了计算器的一些基本功能,如加减乘除等。

2.使用GUI功能创建计算器界面

2.1 打开GUI设计界面

首先在命令行输入guide命令,将出现以下界面:
在这里插入图片描述
选择第一个点击确定将生成一个新的GUI编辑界面:
在这里插入图片描述

2.2 编辑运行框

此时先点击左侧生成“可编辑文本”,在空白界面生成,这就是运算框了。
在这里插入图片描述
右键进入属性检查器进行各项的设置。分别是在设置:
①BackgroundColor,这个可以改变文本框的背景颜色
②FontSize显示字体的大小默认是8.0,可以改成16.0
③String,可以进行修改,变成空文本
④Tag(标签):表示的是这个可编辑文本框的系统中的名字
如笔者将颜色与字体大小进行了设置:
讲到这里,相信大家的可编辑文本框已经弄好了。
在这里插入图片描述

2.3 设置按钮

点击按钮,在编辑界面设置。
在这里插入图片描述
和可编辑文本框一样,右键进入属性检查器进行设置。如笔者设置了不同的颜色与文本大小。记住每建立一个按钮都可以修改按钮的名字,防止各个按钮搞混。
在这里插入图片描述

3.为每个按钮设定函数功能

此时我们将为每个函数编写一段代码来实现功能。此时我们将用到回调的功能。
在这里插入图片描述
选择第一个Calback,查看按钮1的函数,将出现以下代码:

% --- 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 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)
textString = get(handles.edit1,'String');
textString = strcat(textString,'1');
set(handles.edit1,'String',textString);

此时我们发现可以输入1了:
在这里插入图片描述

此时就可以知道2~0都可以进行类似的修改,包括+,-,*,.,/。只需要改变textString中的字符即可。
接下来对几个特殊功能的代码进行演示。
“=”

textString = get(handles.edit1,'String');
ans = eval(textString);
set(handles.edit1,'String',ans);

“back”,即回退

textString = get(handles.edit1,'String');
str = char(textString);
value = length(str);
textString = str(1:value-1);
set(handles.edit1,'String',textString);

“C”,即清零

set(handles.edit1,'String','');

4.结果演示

在这里插入图片描述
按下等于键后:
在这里插入图片描述

5.总结与反思

注意

  • 需要插入的是按钮,不要再次插入可编辑文本框。
  • 进行GUI界面设计可以充分发挥灵感,需要界面美观

http://chatgpt.dhexx.cn/article/TalvqVRd.shtml

相关文章

MATLAB使用git管理代码

1、安装git(一路next就行) Git - Downloads (git-scm.com)https://git-scm.com/downloads 2、打开MATLAB,在你想要管理的代码文件右键,找到源代码管理,设置远程库的地址,就是你在github或者gitee上创建的…

什么是耦合、紧耦合、松耦合

一、耦合 耦合是两个或多个模块之间的相互关联。在软件工程中,两个模块之间的耦合度越高,维护成本越高。因此,在系统架构的设计过程中,应减少各个模块之间的耦合度,以提高应用的可维护性。 二、紧耦合 紧耦合架构本质…

java什么是耦合_在JAVA编程中什么叫耦合?

展开全部 耦合性是编程中的一个判断代码模块构成质量的属性,不影响已有功能,但影响未来62616964757a686964616fe78988e69d8331333365633838拓展,与之对应的是内聚性。 耦合性:也称块间联系。指软件系统结构中各模块间相互联系紧密…

什么是耦合,什么是内聚

耦合 有 A 和 B 两个 element。当修改了 A 的时候,B 必须被修改,那么两者就耦合了。 在耦合的定义里没有 element 之间的包含关系。耦合是两两之间的,不是父子之间的 耦合差不多就是静态类型的引用关系,那种可以被编译器报错的…

耦合是什么 耦合有哪些种类

耦合是对一个软件结构内不同模块之间互联程度的度量。耦合强弱取决于模块间接口的复杂程度,进入或访问一个模块的点,以及通过接口的数据。 模块间的耦合度强烈影响着系统的可理解性、可测试性、可靠性和可维护性。 耦合程度最低:两个模块每个…

python copy()和deepcopy()解释(import copy)

对于简单的 object,用 shallow copy 和 deep copy 没区别 复杂的 object, 如 list 中套着 list 的情况,shallow copy 中的 子list,并未从原 object 真的「独立」出来。也就是说,如果你改变原 object 的子 list 中的一…

解决使用copy.deepcopy()拷贝Tensor或model时报错只支持用户显式创建的Tensor问题

模型训练过程中常需边训练边做validation或在训练完的模型需要做测试,通常的做法当然是先创建model实例然后掉用load_state_dict()装载训练出来的权重到model里再调用model.eval()把模型转为测试模式,这样写对于训练完专门做测试时当然是比较合适的&…

Python中copy()和deepcopy()的区别

同样是copy,二者有什么不同呢今天我们就一探究竟!!! 关于copy()和deepcopy()的第一篇博客 初学编程的小伙伴都会对于深浅拷贝的用法有些疑问,今天我们就结合python变量存储的特性从内存的角度来谈一谈赋值和深浅拷贝~…

python deepcopy

1. copy.copy 浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对象。 2. copy.deepcopy 深拷贝 拷贝对象及其子对象 一个很好的例子: import copya [ 1 , 2 , 3 , 4 , [ a , b ]] # 原始对象 b a # 赋值,传对象的引用 c copy.…

Python copy与deepcopy(深浅复制)

Python深浅复制 一般对象的复制复杂对象的复制 最近遇到了有关Python中的copy与deepcopy问题,之前再Java里面好像也遇到了深浅复制的问题,但是Python中的深浅复制还不是很熟,就简单了解了一下它们2个的差别,可以供大家参考&#x…

python copy()和deepcopy()解释(浅拷贝、深拷贝)

对于简单的 object,用 shallow copy 和 deep copy 没区别 复杂的 object, 如 list 中套着 list 的情况,shallow copy 中的 子list,并未从原 object 真的「独立」出来。也就是说,如果你改变原 object 的子 list 中的一…

python学习 - copy模块的浅复制(copy)与深复制(deepcopy)

python学习 - copy模块的浅复制(copy)与深复制(deepcopy) 简介copy.copy()详解copy.deepcopy()详解 简介 在使用列表或者字典进行传递参数的时候,可能会遇到函数改变了列表的值,但是不希望印象原来列表中的…

python中copy()和deepcopy()详解

参考文章 http://iaman.actor/blog/2016/04/17/copy-in-python **首先直接上结论: —–我们寻常意义的复制就是深复制,即将被复制对象完全再复制一遍作为独立的新个体单独存在。所以改变原有被复制对象不会对已经复制出来的新对象产生影响。 —–而浅…

不懂copy与deepcopy的区别?这一篇就够了

背景 在运用Python进行开发代码过程中,会遇到变量复制备份的场景,但并没有得到预期的结果,例如下面的例子: lista [a, b, [1, 2, 3]] listb lista.copy() lista[2].append(4)print(lista) # [a, b, [1, 2, 3, 4]] print(list…

浅拷贝(shallow copy)和深拷贝(deep copy)

浅拷贝(shallow copy):只负责克隆按值传递的数据(比如基本数据类型、String类型) 深拷贝(deep copy):除了shallow copy的值外,还负责克隆引用类型的数据,基本…

js深拷贝deepCopy教程:支持循环引用、类型不丢失、可扩展、可定制

目录 1. 背景2. 简介3. 安装方式 3.1. 方式1&#xff1a;通过 npm 安装3.2. 方式2&#xff1a;直接下载原代码3.3. 方式3&#xff1a;通过<script>标签引入 4. 教程 4.1. API简介4.2. 基本使用4.3. 拷贝函数4.4. 指定拷贝深度4.5. 循环引用4.6. 保持类型信息4.7. 拷贝不可…

深入理解Python深拷贝(deepcopy)、浅拷贝(copy)、等号拷贝----看了还不懂找我

编程中难免会遇到copy&#xff08;浅拷贝&#xff09;与deepcopy&#xff08;深拷贝&#xff09;问题&#xff0c;一不小心就会掉进坑中了&#xff0c;或许很多人只知道有深浅拷贝&#xff0c;但是你又知道copy和""拷贝有什么区别么&#xff1f;也许很少有人对二者的…

Python-copy()与deepcopy()区别

最近在实习&#xff0c;boss给布置了一个python的小任务&#xff0c;学习过程中发现copy&#xff08;&#xff09;和deepcopy&#xff08;&#xff09;这对好基友实在是有点过分&#xff0c;搞的博主就有点傻傻分不清啊&#xff0c;但是呢本着一探到底的精神&#xff0c;还是要…

三分钟入门大数据之什么是用户画像?

哈喽&#xff0c;大家好&#xff0c;我是汉斯老师。近几年来&#xff0c;互联网行业由于较高的薪资收入&#xff0c;受到许多人的追捧。很多年轻的学子&#xff0c;或是其他行业的有志青年&#xff0c;都想要投身到这个行业中来。然而一方面受到“互联网寒冬”的影响&#xff0…

什么是用户画像?金融行业大数据用户画像实践

金融消费者逐渐年轻化&#xff0c;80、90后成为客户主力&#xff0c;他们的消费意识和金融意识正在增强。金融服务正在从以产品为中心&#xff0c;转向以消费者为中心。所有金融行业面对的最大挑战是消费者的消费行为和消费需求的转变&#xff0c;金融企业迫切需要为产品寻找目…