用python写一个支持windows/mac os系统的一个计算器exe,界面高级点,带有比较丰富的外观和功能。
时间: 2024-05-10 19:14:21 浏览: 15
好的,我们可以使用Python的GUI库Tkinter来创建一个高级的计算器应用程序。
首先,我们需要安装Tkinter库,可以使用以下命令来安装:
```
pip install tkinter
```
接下来,我们可以创建一个名为calculator.py的文件,然后开始编写代码。下面是完整的代码:
```python
import tkinter as tk
class Calculator:
def __init__(self, master):
self.master = master
master.title("Calculator")
# Create input field
self.entry = tk.Entry(master, width=30, font=('Arial', 14))
self.entry.grid(row=0, column=0, columnspan=4, padx=5, pady=5)
# Create buttons
button_1 = self.create_button(7, 1)
button_2 = self.create_button(8, 1)
button_3 = self.create_button(9, 1)
button_4 = self.create_button('÷', 1, bg='#FFA07A', fg='white')
button_5 = self.create_button(4, 2)
button_6 = self.create_button(5, 2)
button_7 = self.create_button(6, 2)
button_8 = self.create_button('×', 2, bg='#FFA07A', fg='white')
button_9 = self.create_button(1, 3)
button_10 = self.create_button(2, 3)
button_11 = self.create_button(3, 3)
button_12 = self.create_button('-', 3, bg='#FFA07A', fg='white')
button_13 = self.create_button('.', 4)
button_14 = self.create_button(0, 4)
button_15 = self.create_button('=', 4, bg='#90EE90', fg='white')
button_16 = self.create_button('+', 4, bg='#FFA07A', fg='white')
# Create clear button
clear_button = tk.Button(master, text='C', width=7, height=2, bg='#FFA07A', fg='white', font=('Arial', 12), command=self.clear)
clear_button.grid(row=5, column=0, columnspan=2, padx=5, pady=5)
def create_button(self, text, row, bg='#E0E0E0', fg='black'):
return tk.Button(self.master, text=text, width=7, height=2, bg=bg, fg=fg, font=('Arial', 12), command=lambda:self.click(text)).grid(row=row, column=self.get_column(text), padx=5, pady=5)
def get_column(self, text):
if text in ['+', '-', '×', '÷', '.']:
return 3
return int(text) - 1
def click(self, text):
if text == '=':
try:
self.entry.delete(0, tk.END)
self.entry.insert(tk.END, eval(self.entry.get()))
except:
self.entry.insert(tk.END, 'Error')
elif text == 'C':
self.clear()
else:
self.entry.insert(tk.END, text)
def clear(self):
self.entry.delete(0, tk.END)
if __name__ == '__main__':
root = tk.Tk()
calc = Calculator(root)
root.mainloop()
```
让我们逐行解释这个代码的功能:
- `import tkinter as tk`: 导入Tkinter库并将其重命名为tk,以便更轻松地使用它。
- `class Calculator:`: 定义名为Calculator的类,它将包含我们的计算器应用程序的所有逻辑。
- `def __init__(self, master):`: 定义初始化函数,它将在创建Calculator类的新实例时自动调用。`master`参数表示Tkinter窗口的主控件。
- `self.master = master`: 将`master`参数存储为`self.master`属性,以便在类中的其他方法中使用它。
- `master.title("Calculator")`: 设置窗口标题为“Calculator”。
- `self.entry = tk.Entry(master, width=30, font=('Arial', 14))`: 创建一个Tkinter Entry小部件,并将其存储为`self.entry`属性。该小部件将用于用户输入数字和运算符。
- `self.entry.grid(row=0, column=0, columnspan=4, padx=5, pady=5)`: 将输入字段放置在窗口的顶部,并将其跨越4个列。
- `button_1 = self.create_button(7, 1)`: 创建一个名为`button_1`的按钮,该按钮显示数字7,并位于第1行和第1列。
- `self.create_button`:一个辅助函数,用于创建按钮。它接受一个文本参数,一个行参数和可选的背景和前景颜色参数。该函数返回一个新的Tkinter按钮小部件。
- `bg='#E0E0E0', fg='black'`:按钮的默认背景色是灰色,前景色是黑色。
- `self.click(text)`:将按钮的单击事件绑定到`click`函数,该函数将在按钮单击时调用,并将文本参数作为输入参数。
- `self.get_column(text)`:一个辅助函数,用于根据按钮上的文本确定要放置的列。
- `def get_column(self, text):`:如果文本是加号、减号、乘号、除号或小数点,则该函数返回第3列;否则返回与文本相对应的数字列号。
- `def click(self, text):`:处理按钮单击事件的函数。如果文本是“=”,则计算并显示结果;如果文本是“C”,则清除输入字段;否则,将文本插入输入字段。
- `def clear(self):`:清除输入字段的函数。
- `if __name__ == '__main__':`:在主函数中运行我们的应用程序。
- `root = tk.Tk()`: 创建一个Tkinter窗口。
- `calc = Calculator(root)`: 创建一个名为`calc`的新计算器实例,并将`root`窗口作为主控件。
- `root.mainloop()`: 启动Tkinter消息循环。
现在,我们可以运行我们的应用程序,看看它是如何工作的。在命令行中运行以下命令:
```
python calculator.py
```
应该会弹出一个名为“Calculator”的窗口,您可以在其中使用数字和运算符。