编写一个简单的加减计算器,计算器提供数据两个输入框、一个数据输出框、加按钮、减按钮、清除按钮。 输入框供用户输入参与加减计算的两个数值, 输出框设置为不可输入状态,由程序控制输出加减的结果。 加减按钮被点击时,将输入框的加减结果在输出框输出。 清除按钮被点击时,清除输入、输出框的所有内容。 清除按钮再添加一个鼠标进入和鼠标移出行为的处理,当鼠标进入清除按钮时,鼠标变成手的符号,鼠标移出时,鼠标变成箭头符号。

时间: 2024-01-21 07:17:47 浏览: 27
以下是一个简单的加减计算器的代码示例,使用Python的Tkinter库实现界面: ```python import tkinter as tk class Calculator: def __init__(self, master): self.master = master self.master.title("加减计算器") self.num1_var = tk.StringVar() self.num2_var = tk.StringVar() self.result_var = tk.StringVar() self.num1_entry = tk.Entry(self.master, textvariable=self.num1_var) self.num1_entry.grid(row=0, column=0, padx=5, pady=5) self.num2_entry = tk.Entry(self.master, textvariable=self.num2_var) self.num2_entry.grid(row=0, column=1, padx=5, pady=5) self.add_button = tk.Button(self.master, text="加", command=self.add) self.add_button.grid(row=1, column=0, padx=5, pady=5) self.sub_button = tk.Button(self.master, text="减", command=self.sub) self.sub_button.grid(row=1, column=1, padx=5, pady=5) self.clear_button = tk.Button(self.master, text="清除", command=self.clear) self.clear_button.grid(row=1, column=2, padx=5, pady=5) self.result_entry = tk.Entry(self.master, textvariable=self.result_var, state="readonly") self.result_entry.grid(row=2, column=0, columnspan=3, padx=5, pady=5) self.clear_button.bind("<Enter>", self.hover_on) self.clear_button.bind("<Leave>", self.hover_off) def add(self): try: num1 = float(self.num1_var.get()) num2 = float(self.num2_var.get()) result = num1 + num2 self.result_var.set(str(result)) except ValueError: self.result_var.set("请输入数字") def sub(self): try: num1 = float(self.num1_var.get()) num2 = float(self.num2_var.get()) result = num1 - num2 self.result_var.set(str(result)) except ValueError: self.result_var.set("请输入数字") def clear(self): self.num1_var.set("") self.num2_var.set("") self.result_var.set("") def hover_on(self, event): self.clear_button.config(cursor="hand2") def hover_off(self, event): self.clear_button.config(cursor="arrow") if __name__ == "__main__": root = tk.Tk() app = Calculator(root) root.mainloop() ``` 在这个示例中,我们使用了Tkinter库来创建GUI界面。首先,我们创建了一个Calculator类,它包含了输入框、输出框、加按钮、减按钮和清除按钮。我们使用StringVar来存储输入框和输出框中的文本,并将输入框和输出框设置为Entry小部件。我们还创建了一个add方法和一个sub方法,用于执行加法和减法计算。如果输入框中的文本不是数字,计算器将输出“请输入数字”。我们使用bind方法绑定了鼠标进入和鼠标移出事件,以便在鼠标进入清除按钮时将光标更改为手的符号,鼠标移出时将光标更改回箭头符号。最后,我们使用root.mainloop()来运行主事件循环,让GUI界面响应用户的操作。

相关推荐

最新推荐

recommend-type

超级简易的JS计算器实例讲解(实现加减乘除)

下面小编就为大家带来一篇超级简易的JS计算器实例讲解(实现加减乘除)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
recommend-type

设计一个程序来模拟一个简单的手持计算器

可定义一个计算器类,该类包括两个组件对象,一个计算引擎和一个用户接口,用户接口对象处理接受的键盘输入信息,并显示答案,计算引擎对象对给出的数据执行相应操作,并存储操作的结果。 选作内容 如果用户输入的...
recommend-type

基于微信小程序的驾校预约管理系统(毕业设计,包括源码,文档说明)高分项目

基于微信小程序的驾校预约管理系统(毕业设计,包括源码,文档说明)高分项目含有代码注释、使用文档说明,新手也可看懂,毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。该项目可以作为毕设、期末大作业使用,该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值,项目都经过严格调试,确保可以运行! 基于微信小程序的驾校预约管理系统(毕业设计,包括源码,文档说明)高分项目含有代码注释、使用文档说明,新手也可看懂,毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。该项目可以作为毕设、期末大作业使用,该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值,项目都经过严格调试,确保可以运行! 基于微信小程序的驾校预约管理系统(毕业设计,包括源码,文档说明)高分项目含有代码注释、使用文档说明,新手也可看懂,毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。该项目可以作为毕设、期末大作业使用,该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值,项目都经过严
recommend-type

P1923 【深基9.例4】求第 k 小的数.cpp

P1923 【深基9.例4】求第 k 小的数
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

确保MATLAB回归分析模型的可靠性:诊断与评估的全面指南

![确保MATLAB回归分析模型的可靠性:诊断与评估的全面指南](https://img-blog.csdnimg.cn/img_convert/4b823f2c5b14c1129df0b0031a02ba9b.png) # 1. 回归分析模型的基础** **1.1 回归分析的基本原理** 回归分析是一种统计建模技术,用于确定一个或多个自变量与一个因变量之间的关系。其基本原理是拟合一条曲线或超平面,以最小化因变量与自变量之间的误差平方和。 **1.2 线性回归和非线性回归** 线性回归是一种回归分析模型,其中因变量与自变量之间的关系是线性的。非线性回归模型则用于拟合因变量与自变量之间非
recommend-type

引发C++软件异常的常见原因

1. 内存错误:内存溢出、野指针、内存泄漏等; 2. 数组越界:程序访问了超出数组边界的元素; 3. 逻辑错误:程序设计错误或算法错误; 4. 文件读写错误:文件不存在或无法打开、读写权限不足等; 5. 系统调用错误:系统调用返回异常或调用参数错误; 6. 硬件故障:例如硬盘损坏、内存损坏等; 7. 网络异常:网络连接中断、网络传输中断、网络超时等; 8. 程序异常终止:例如由于未知原因导致程序崩溃等。
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。
recommend-type

"互动学习:行动中的多样性与论文攻读经历"

多样性她- 事实上SCI NCES你的时间表ECOLEDO C Tora SC和NCESPOUR l’Ingén学习互动,互动学习以行动为中心的强化学习学会互动,互动学习,以行动为中心的强化学习计算机科学博士论文于2021年9月28日在Villeneuve d'Asq公开支持马修·瑟林评审团主席法布里斯·勒菲弗尔阿维尼翁大学教授论文指导奥利维尔·皮耶昆谷歌研究教授:智囊团论文联合主任菲利普·普雷教授,大学。里尔/CRISTAL/因里亚报告员奥利维耶·西格德索邦大学报告员卢多维奇·德诺耶教授,Facebook /索邦大学审查员越南圣迈IMT Atlantic高级讲师邀请弗洛里安·斯特鲁布博士,Deepmind对于那些及时看到自己错误的人...3谢谢你首先,我要感谢我的两位博士生导师Olivier和Philippe。奥利维尔,"站在巨人的肩膀上"这句话对你来说完全有意义了。从科学上讲,你知道在这篇论文的(许多)错误中,你是我可以依