用python语言编写程序,tkinter开发GUI程序,实现简易计算器,窗口界面自由发挥,编程实现两个整数的加、减、乘、除操作。要求如下: 首先进行操作数文本框检验,检验输入数据是否为纯数字; 通过分别单击加、减、乘、除按钮,对操作数1与操作数2进行相应加、减、乘、除操作,并且将其结果写入操作3文本框。要求使用拓展库re,tkinter,tkinter.messagebox
时间: 2023-07-10 15:21:47 浏览: 97
基于python的Tkinter实现一个简易计算器
好的,这是一个比较典型的GUI程序开发,需要使用Python的Tkinter库。我会根据你的要求,提供一份简易计算器的代码,你可以根据自己的需求进行修改和优化。以下是代码:
```python
import re
import tkinter as tk
from tkinter import messagebox
class Calculator:
def __init__(self, master):
self.master = master
self.master.title("简易计算器")
self.master.geometry("300x200")
self.__create_input_widgets()
self.__create_button_widgets()
def __create_input_widgets(self):
self.input1_label = tk.Label(self.master, text="操作数1:")
self.input1_label.grid(row=0, column=0, padx=10, pady=10, sticky=tk.W)
self.input1_entry = tk.Entry(self.master, width=20)
self.input1_entry.grid(row=0, column=1, padx=10, pady=10)
self.input2_label = tk.Label(self.master, text="操作数2:")
self.input2_label.grid(row=1, column=0, padx=10, pady=10, sticky=tk.W)
self.input2_entry = tk.Entry(self.master, width=20)
self.input2_entry.grid(row=1, column=1, padx=10, pady=10)
self.input3_label = tk.Label(self.master, text="操作结果:")
self.input3_label.grid(row=2, column=0, padx=10, pady=10, sticky=tk.W)
self.input3_entry = tk.Entry(self.master, width=20)
self.input3_entry.grid(row=2, column=1, padx=10, pady=10)
def __create_button_widgets(self):
self.add_button = tk.Button(self.master, text="+", width=5, command=self.__add)
self.add_button.grid(row=3, column=0, padx=10, pady=10)
self.sub_button = tk.Button(self.master, text="-", width=5, command=self.__sub)
self.sub_button.grid(row=3, column=1, padx=10, pady=10)
self.mul_button = tk.Button(self.master, text="*", width=5, command=self.__mul)
self.mul_button.grid(row=3, column=2, padx=10, pady=10)
self.div_button = tk.Button(self.master, text="/", width=5, command=self.__div)
self.div_button.grid(row=3, column=3, padx=10, pady=10)
def __add(self):
if self.__validate_input():
result = float(self.input1_entry.get()) + float(self.input2_entry.get())
self.input3_entry.delete(0, tk.END)
self.input3_entry.insert(0, result)
def __sub(self):
if self.__validate_input():
result = float(self.input1_entry.get()) - float(self.input2_entry.get())
self.input3_entry.delete(0, tk.END)
self.input3_entry.insert(0, result)
def __mul(self):
if self.__validate_input():
result = float(self.input1_entry.get()) * float(self.input2_entry.get())
self.input3_entry.delete(0, tk.END)
self.input3_entry.insert(0, result)
def __div(self):
if self.__validate_input():
if float(self.input2_entry.get()) == 0:
messagebox.showerror("Error", "除数不能为0")
else:
result = float(self.input1_entry.get()) / float(self.input2_entry.get())
self.input3_entry.delete(0, tk.END)
self.input3_entry.insert(0, result)
def __validate_input(self):
pattern = r'^[-+]?[0-9]+\.[0-9]+$|^[-+]?[0-9]+$'
if not re.match(pattern, self.input1_entry.get()):
messagebox.showerror("Error", "操作数1必须是纯数字")
return False
elif not re.match(pattern, self.input2_entry.get()):
messagebox.showerror("Error", "操作数2必须是纯数字")
return False
else:
return True
if __name__ == "__main__":
root = tk.Tk()
app = Calculator(root)
root.mainloop()
```
以上代码中,我们使用了Tkinter库中的Label、Entry、Button等控件来实现计算器的界面,使用了正则表达式来验证用户输入的数据是否为纯数字。同时,我们还使用了Tkinter库中的messagebox来显示错误信息。在实现加、减、乘、除操作时,我们先验证用户输入的数据是否合法,如果合法则进行相应的计算,否则显示错误信息。
希望这份代码能够对你有所帮助!
阅读全文